2011-06-30 29 views
0

我對如何限制在java中打印出的字符串的數量有疑問。比如我想是這樣的:如何限制打印出的字符串的數量(JAVA)

一部開拓創新的字符串:

「在世界的悠久歷史, 只有少數幾代人被 授予最高時捍衛自由 的作用。危險我也 不畏縮於這一責任 - 我歡迎它「

我想這一點:

「在世界的悠久歷史, 只有少數幾代人被授予 最大的時捍衛自由 的作用......」

回答

7

使用java.text.BreakIterator中,這樣的事情:

String s = "I want to truncate this"; 
int chars = 10; 
BreakIterator b = BreakIterator.getWordInstance(); 
b.setText(s); 
int cutAt = bi.following(chars); 
System.out.println(s.substring(0,cutAt)) 
+0

好的!不知道BreakIterator! – ahans

+0

謝謝!我知道如何做到這種長效低效的方式...我想知道是否有內置的方式來做到這一點。謝謝!我會接受這個。 – thunderousNinja

0
String yourString = "very long string"; 
maxCharToPrint= 10; 
System.out.println(yourString.substring(0, maxCharToPrint)); 
+0

什麼如果yourString.length()== 5? 正確,線程中的異常「main」java.lang.StringIndexOutOfBoundsException:字符串索引超出範圍。「 – DmitrySandalov

3

您可以使用的東西例如:

if (s.length() > 25) 
    System.out.println (s.substring (0,22) + "..."); 
else 
    System.out.println (s); 

這可以讓字符串打印得足夠短,而縮短(帶省略號)那些太長的字符串。

0
String s = "your long sentence" 
s.Substring(start, end); 

你的情況

s.Substring(0, max); 
0

您也可以使用Apache Commons' org.apache.commons.lang.StringUtils類,它提供了以下使用方法:

String abbreviate(String str, int maxWidth) 
String abbreviate(String str, int offset, int maxWidth) 
String abbreviateMiddle(String str, String middle, int length)