當字符串長度大於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個字符串會被剪切掉,儘管它們會更短或者長度相同。 –