2017-05-06 39 views
0

我想this exercice拆分沒有抓到符號

我採用分體式刪除「[」,「]」和「」做的。

Scanner sc = new Scanner(System.in); 

    String cadena, cadenaDelimitadores; 

    cadena = sc.nextLine(); 

    cadenaDelimitadores = "[ .,;?!¡¿\'\"\\[\\]]+"; 

    String[] cadenaString = cadena.split(cadenaDelimitadores); 

    int[] cadenaInt = new int[cadenaString.length]; 

    try{ 

     for (int i = 0; i < cadenaString.length; i++) { 

      cadenaInt[i] = Integer.parseInt(cadenaString[i]); 

      System.out.println(cadenaInt[i]); 
     } 
    } catch (NumberFormatException ex){ 

     System.out.println("Not found"); 
    } 

當我執行代碼時,有一些來自split的未捕獲符號。

輸入例:

[-3, 1, 2] 
+0

輸入是什麼?和你期望的結果是什麼? –

+0

輸入: [-3,1,2],我將數字保存在字符串中,並將此字符串解析爲Int。 – shoket

+0

你可以先用'['和']'替換,然後調用'split(「,」)' –

回答

0

而不是使用分裂,檢查很多情況下,你使用模式,而不是這裏有一個例子:

Pattern pattern = Pattern.compile("-?\\d+"); 
Matcher matcher = pattern.matcher("[-3, 1, 2]"); 
while (matcher.find()) { 
    System.out.println(matcher.group()); 
} 

輸出

-3 
1 
2