2017-05-06 57 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