2013-07-16 21 views
15

この文字列の長さが50より大きい場合にJava文字列を切り取り、文字列の最後に "..."を追加します。文字数でJava文字列を切り捨てます

例:

私は、次のJavaのStringを持っている:

String str = "abcdefghijklmnopqrtuvwxyz"; 

私は長= 8で文字列をカットしたいと思います:

結果がでなければなりません。

String strOut = "abcdefgh..." 
+1

を通常は長さが省略記号でNよりもされないようにカットするために、より理にかなっています。違いは、例9では、10文字または11文字の文字列は、短くても同じ長さであっても切り取られるということです。 –

答えて

9

使用し

String strOut = "abcdefghijklmnopqrtuvwxyz" 
String result = strOut.substring(0, 8) + "...";// count start in 0 and 8 is excluded 
System.out.pritnln(result); 

注サブストリング:ストリングは、(第2の整数、最初INT)の2つのパラメータを取ります。最初は包括的で、2番目は排他的です。

+0

@rgettmanこれは本当です。入力していただきありがとうございます。 – fmodos

9

ジャカルタコモンズStringUtils.abbreviate()。何らかの理由で第三者のライブラリを使用したくない場合は、少なくともsource codeをコピーしてください。

これまでのその他の回答よりも大きな利点の1つは、nullを渡すと投げられないことです。

2

このような何かであってもよい:

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

使用したサブストリングとCONCATENATE:

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

はあなたがしかし、機能場所を作ることができ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 
18

StringUtils.abbreviate("abcdefg", 6);

これはあなたに次のような結果が得られます:6が必要な長さであり、 "ABCDEFG" abc...

はabbrevietedする必要のある文字列です。

+0

「abcfudhrenflöerhbfhlredbl」と書かれていた場合は...「私の心ははるかに速くあなたが意味するものを得るでしょう。 :D:Dとにかく感謝:) –

+2

これは最も正確なので、この回答は受け入れられるべきです。 – Peter

3

あなたは安全な部分文字列を使用することができます

org.apache.commons.lang3.StringUtils.substring(str, 0, LENGTH); 
関連する問題