2017-08-21 9 views
-5
public class NewClass 
{ 
    public static void main(String args[]) 
    { 
     System.out.println("Operation 1"); 
     StringTokenizer st1 = 
      new StringTokenizer("Hello Geeks How are you", "\\s+"); 
      while (st1.hasMoreTokens()) 
      System.out.println(st1.nextToken()); 
      String s = "Hello Geeks How are you"; 
      String s1[]= s.split("\\s+"); 
      System.out.println("Operation 2"); 

      for(String temp : s1) { 
       System.out.println(temp); 
      } 
    } 
} 

動作していないです: - なぜ、分割()とStringTokenizerは私が得ていないのです私はなぜスプリット()取得したStringTokenizer()として私は出力を取得していますコードを実行した後、ここでは異なる

Operation 1 
Hello Geek 
How are you 
Operation 2 
Hello 
Geeks 
How 
are 
you 

()は同じパラメータで異なる動作をします。

+0

上記のプログラムでは、StringTokenizer()とsplit()の出力が異なります –

答えて

7

new StringTokenizer(str, delim)のパラメータは、ではなく、の正規表現です。 StringTokenizerのいずれかの\s、または+,、 "1つ以上の空白文字"で分割するように指示しています。そしてあなたの文字列にこれが当てはまる唯一の文字は "Geeks"の "s"で、文字列が分割されています。

空白(1つまたは複数)で分割したい場合は、にはdelimというパラメータを使用せず、デフォルトで" \t\n\r\f"を使用してください。

+0

(ちょっと微妙に微調整したと思っています。 –

関連する問題