2016-08-19 128 views
0

我想忽略使用字符串標記器的特殊字符,如, " ; :。 例如,如果我輸入:忽略StringTokenizer上的特殊字符java

He said, "That's not a good idea." 

輸出應該是:

He 
Said 
that 
s 
not 
a 
good 
idea 

這是我當前的代碼

class Q_03 
{ 
    public static void main(String[] argv) 
    { 
     System.out.print("Enter text to break :- "); 
     Scanner sc = new Scanner(System.in); 
     String x = sc.nextLine(); 
     StringTokenizer url = new StringTokenizer(x, " ");    

     while(url.hasMoreTokens()) 
     { 
      System.out.println(url.nextToken()); 
     } 
    } 
} 
+0

考慮使用['String#split'](https://docs.oracle.com/javase/8/docs/api/java/lang/String.html#split-java.lang.String-)正則表達式。 – bradimus

回答

0

你可以regex這樣的替換特殊字符:

class Q_03 { 
    public static void main(String[] argv) { 
     System.out.print("Enter text to break :- "); 
     Scanner sc = new Scanner(System.in); 
     String x = sc.nextLine().replaceAll("[|;:,'\"]", " "); 
     StringTokenizer url = new StringTokenizer(x, " "); 

     while (url.hasMoreTokens()) { 
      System.out.println(url.nextToken()); 
     } 
    } 
} 

你可以添加到這個正則表達式"[;:,'\"]"任何你想要的符號,但一些特殊的符號(如")必須已經用反斜槓\"逃脫。

+0

它的工作表示感謝。但是當我把字符像|它給出了一個編譯錯誤。 – nascar895

+0

它使用'|',我測試了它。我更新了我的答案。 – DimaSan