在Java中给定一个字符串,只需取前X个字母
有没有类似于Java的C#子字符串?我正在为Blackberry设备创建一个移动应用程序,由于屏幕限制,我只能显示13个字母加3个点作为省略号。
关于如何实现这一目标的任何建议?
我需要基本的Java,而不是一些花哨的技巧,因为我怀疑移动设备可以访问完整的框架。至少在我一年前使用Java ME的经验中是这样。
有没有类似于Java的C#子字符串?我正在为Blackberry设备创建一个移动应用程序,由于屏幕限制,我只能显示13个字母加3个点作为省略号。
关于如何实现这一目标的任何建议?
我需要基本的Java,而不是一些花哨的技巧,因为我怀疑移动设备可以访问完整的框架。至少在我一年前使用Java ME的经验中是这样。
您可以使用 做您想做的事。String.substring()
String str = "please truncate me after 13 characters!";
if (str.length() > 16)
str = str.substring(0, 13) + "..."
String foo = someString.substring(0, Math.min(13, someString.length()));
编辑:仅供一般参考,从番石榴16.0开始,您可以执行以下操作:
String truncated = Ascii.truncate(string, 16, "...");
以最大长度为 16 个字符,并用省略号截断。
旁白
但请注意,截断字符串以按字符显示对于可能需要考虑i18n的任何内容都不是一个好的系统。它(至少)有几个不同的问题:
e
e
由于这些原因(以及其他原因),我的理解是,在UI中显示截断的最佳做法是在屏幕上的正确点实际淡出文本的呈现,而不是截断基础字符串。