当字符串长度大于50时,我想剪切一个Java字符串,并在字符串末尾添加“...”。在多个字符处剪切Java字符串
实施例:
我有以下的Java字符串:
String str = "abcdefghijklmnopqrtuvwxyz";
我想切割字符串在长度= 8:
结果必须是:
String strOut = "abcdefgh..."
当字符串长度大于50时,我想剪切一个Java字符串,并在字符串末尾添加“...”。在多个字符处剪切Java字符串
实施例:
我有以下的Java字符串:
String str = "abcdefghijklmnopqrtuvwxyz";
我想切割字符串在长度= 8:
结果必须是:
String strOut = "abcdefgh..."
使用子串
String strOut = "abcdefghijklmnopqrtuvwxyz"
String result = strOut.substring(0, 8) + "...";// count start in 0 and 8 is excluded
System.out.pritnln(result);
注意:substring(int first,int second)接受两个参数。第一个是包容性的,第二个是排他性的。
@rgettman这是真的,谢谢输入 – fmodos
Jakarta Commons StringUtils.abbreviate()。如果由于某种原因您不想使用第三方库,请至少复制source code。
与其他答案相比,此优点的一大优点是,如果您传递null值,它不会抛出。
像这样的东西可能是:
String str = "abcdefghijklmnopqrtuvwxyz";
if (str.length() > 8)
str = str.substring(0, 8) + "...";
String strOut = str.substring(0, 8) + "...";
使用串并连接:
if(str.length() > 50)
strOut = str.substring(0,7) + "...";
您可以使用String#substring()
if(str != null && str.length() > 8) {
return str.substring(0, 8) + "...";
} else {
return str;
}
但是你可以做一个函数,其中您传递可以显示的最大字符数。只有当指定的宽度对于字符串不够时,省略号才会切入。
public String getShortString(String input, int width) {
if(str != null && str.length() > width) {
return str.substring(0, width - 3) + "...";
} else {
return str;
}
}
// abcdefgh...
System.out.println(getShortString("abcdefghijklmnopqrstuvwxyz", 11));
// abcdefghijk
System.out.println(getShortString("abcdefghijk", 11)); // no need to trim
StringUtils.abbreviate("abcdefg", 6);
这会给你以下结果:abc...
其中6所需要的长度,而 “ABCDEFG” 是需要被abbrevieted的字符串。
如果你写了'和'abcfudhrenflöerhbfhlredbl'是...'我的头脑会更快地得到你的意思。 :D:D谢谢:) –
这个答案应该被接受,因为它是最准确的。 – Peter
您可以使用安全的字符串:
org.apache.commons.lang3.StringUtils.substring(str, 0, LENGTH);
通常它更有意义的削减,使得其长度将不超过N个以省略号。不同的是,在你的例子中,9,10或11个字符串会被剪切掉,尽管它们会更短或者长度相同。 –