以多个字符剪切Java String

时间:2013-07-16 20:07:00

标签: java string

当这个String长度为>时,我想剪切一个Java String。 50,并在字符串的末尾添加“...”。

示例:

我有以下Java字符串:

String str = "abcdefghijklmnopqrtuvwxyz";

我想剪掉长度= 8的字符串:

结果必须是:

String strOut = "abcdefgh..."

8 个答案:

答案 0 :(得分:34)

使用substring和concatenate:

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

答案 1 :(得分:24)

StringUtils.abbreviate("abcdefg", 6);

这将为您提供以下结果:abc...

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

答案 2 :(得分:10)

使用子字符串

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

答案 3 :(得分:10)

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

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

答案 4 :(得分:5)

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

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

答案 5 :(得分:4)

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

答案 6 :(得分:2)

这样的事情可能是:

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

答案 7 :(得分:2)

String strOut = str.substring(0, 8) + "...";