栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Java用省略号截断字符串的理想方法

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java用省略号截断字符串的理想方法

我喜欢让“瘦”字符算作半个字符的想法。简单而良好的近似。

然而,大多数省略的主要问题是(imho)他们在中间砍了字。这是一个考虑单词边界的解决方案(但不涉及像素数学和Swing-API)。

private final static String NON_THIN = "[^iIl1\.,']";private static int textWidth(String str) {    return (int) (str.length() - str.replaceAll(NON_THIN, "").length() / 2);}public static String ellipsize(String text, int max) {    if (textWidth(text) <= max)        return text;    // Start by chopping off at the word before max    // This is an over-approximation due to thin-characters...    int end = text.lastIndexOf(' ', max - 3);    // Just one long word. Chop it off.    if (end == -1)        return text.substring(0, max-3) + "...";    // Step forward as long as textWidth allows.    int newEnd = end;    do {        end = newEnd;        newEnd = text.indexOf(' ', end + 1);        // No more spaces.        if (newEnd == -1) newEnd = text.length();    } while (textWidth(text.substring(0, newEnd) + "...") < max);    return text.substring(0, end) + "...";}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/393864.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号