2014-06-16 17 views
-6

我有一個PROGRAMM和標題說我想要分割字符串 我把刺從數據庫中,我不知道究竟包含了每一個字符串 例如串每3個字新線

String locat = "london BLANCHE CAFE ET COCKTAIL BAR" 

我要輸出爲

第一行的「倫敦BLANCHE CAFE」和secont行「ET雞尾酒吧」

+2

我想成爲一個百萬富翁。但爲此我必須努力工作。同樣,你必須付出一些努力來獲得輸出。 – Batty

+2

我建議使用Split(),StringBuilder()作爲一個簡單的方法。 – TheLostMind

+0

也許我沒有解釋得很好,我需要什麼......字符串是一個例子,我有很多字符串,我把它們從數據庫我不知道什麼icludes每串我想要一個模式,每3字給新行 – Kostaras

回答

1

非常簡單的解決方案使用正則表達式:

String newLocat = locat.replaceAll("((?:\\w+\\s){2}\\w+)(\\s)", "$1\n"); 
0

可以換行符添加到字符串"\n"

String locat = "london BLANCHE CAFE \nET COCKTAIL BAR"

+1

是的,我知道,但如果字符串未知? – Kostaras

3

許多方法可以做到這一點。只是一個隨機的簡單邏輯

String locat = "london BLANCHE CAFE ET COCKTAIL BAR"; 
int count =0; 
StringTokenizer s = new StringTokenizer(locat); 

while (s.hasMoreTokens()) { 
     count++; 
     System.out.print(s.nextToken() + " "); 
     if(count%3==0)System.out.println(); 
    } 
+0

你失去了單詞之間的空格。 – stevecross

+0

沒問題..只要符合要求.. :) – user3505725

+0

它不是。你的代碼給出了'londonBLANCHECAFE'和'ETCOCKTAILBAR',但是'london BLANCHE CAFE'和'ET COCKTAIL BAR'是預期的。 – stevecross

3

你可以做這樣的:

final String locat = "london BLANCHE CAFE ET COCKTAIL BAR"; 
final String[] words = locat.split(" "); 
final StringBuilder newLocat = new StringBuilder(); 

for (int i = 0; i < words.length; i++) { 
    if ((i > 0) && (0 == (i % 3))) { 
     newLocat.append('\n'); 
    } 

    newLocat.append(words[i]); 

    if (i != (words.length - 1)) { 
     newLocat.append(' '); 
    } 
} 

System.out.println(newLocat); 
+0

謝謝你這個工作 – Kostaras