以多个字符剪切Java String

我想在此字符串长度> 50时剪切Java字符串,并在字符串末尾添加“…”。

示例:

我有以下Java字符串:

String str = "abcdefghijklmnopqrtuvwxyz"; 

我想在长度= 8处剪切字符串:

结果必须是:

 String strOut = "abcdefgh..." 

使用substring和concatenate:

 if(str.length() > 50) strOut = str.substring(0,7) + "..."; 

StringUtils.abbreviate("abcdefg", 6);

这将给你以下结果: abc...

其中6是所需长度,“abcdefg”是需要缩写的字符串。

Jakarta Commons StringUtils.abbreviate() 。 如果由于某种原因您不想使用第三方库,至少要复制源代码 。

与其他日期答案相比,这一点的一大好处是,如果传入null,它将不会抛出。

使用子字符串

 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)有两个参数。 第一个是包容性的,第二个是独家的。

你可以使用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 

您可以使用安全子字符串:

 org.apache.commons.lang3.StringUtils.substring(str, 0, LENGTH); 

这样的事情可能是:

 String str = "abcdefghijklmnopqrtuvwxyz"; if (str.length() > 8) str = str.substring(0, 8) + "..."; 
 String strOut = str.substring(0, 8) + "...";