2016-05-11 8 views
-1

文字列内のすべての単語を別々の行に印刷しようとしています。"Character.isWhiteSpace"を使用してすべての空白を削除します

public static void printWords() 
{ 
    String s = "quick brown fox jumps over the lazy dog"; 

    String[] arr = s.split(" ");  
    //System.out.println(words.length); 

    for (String ss : arr){ 
     System.out.println(ss); 
    } 
} 

上記のコードは働いており、これが結果です:

enter image description here

今の質問はどのように私は単語の間に空白行を削除しますか?

空白を削除するにはisWhiteSpaceを使用する必要がありますが、動作していないようです。

for (int ss = 0; ss < s.length(); ss++){ 
char c = s.charAt(i); 
if (Character.isWhiteSpace(c)) 
    //System.out.println("White Space"); 
    retun null; 
else 
    System.out.println(ss); } 

対処:

public class Y15Q6 { 
public static void printWords(String s) { 
    int i = 0; 
    while (i < s.length()) { 
     char c = s.charAt(i); 
     if (!Character.isWhitespace(c)) { 
      System.out.print(c); 
      i++; 
     } 
     else { 
      while (Character.isWhitespace(s.charAt(i)) && i < s.length()) 
       i++; 
      System.out.print('\n'); 
     } 
    }  
}  

}

答えて

3

split()正規表現をとります。だから、正規表現を指定して、この行を変更することができますに

String[] arr = s.split(" "); 

を:ここで

String[] arr = s.split("[ ]+"); 

  • [ ]フォームだけスペースを含む文字クラス。
  • +は、できるだけ多くのスペースを見つけるように求めます。 Pshemoとして

以下のコメントで述べている、我々はまた、使用することができます。

String[] arr = s.split(" +"); 

ここでも、+は同じ役割を持っています。

+0

'['と ']'は冗長です。 – Pshemo

+0

@Pshemoあなたが意味するものが得られませんでした.... – Hackerdarshi

+0

'' + "'で十分です。文字クラスを '' [] + ''で追加する必要はありません。 – Pshemo

1
for (String ss : arr){ 
    if (!ss.isEmpty()){ 
     System.out.println(ss); 
    } 
} 
関連する問題