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

自动省略Java中的字符串

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

自动省略Java中的字符串

根据您的用例,将省略号放在字母之间可能会很有用(即,在末尾添加字母以提供一些上下文):

public static String ellipsize(String input, int maxCharacters, int charactersAfterEllipsis) {  if(maxCharacters < 3) {    throw new IllegalArgumentException("maxCharacters must be at least 3 because the ellipsis already take up 3 characters");  }  if(maxCharacters - 3 > charactersAfterEllipsis) {    throw new IllegalArgumentException("charactersAfterEllipsis must be less than maxCharacters");  }  if (input == null || input.length() < maxCharacters) {    return input;  }  return input.substring(0, maxCharacters - 3 - charactersAfterEllipsis) + "..." + input.substring(input.length() - charactersAfterEllipsis);}

省略号算法可能还需要其他更复杂的功能:如果需要将文本放入图形元素中并且使用的是比例字体,则必须测量String的长度。

对于Swing /
AWT来说应该是

java.awt.Font.getStringBounds
。在这种情况下,简单的算法可以一次将字符串切成一个字母并加上省略号,直到字符串符合给定的限制为止。如果经常使用,http://www.preproject.com/KB/cs/AutoEllipsis.aspx?
msg = 3278640 (C#,但应该足够容易转换为Java)中详细说明的二等分方法可以节省一些处理器周期。



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

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

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