-4

我编写了一个 Java 程序并尝试int[]1,2,5,2,11.

但首先我需要判断用户是否输入了正确的格式,例如“,”+数字。如何将其编写为 Java 正则表达式?

//set the default value of int[] a;
        int[] a  = {2,3,1,-2,2,7};  
        //set the UI;
        String text = JOptionPane.showInputDialog("please enter the array to be checked: ");
        String[] strs = text.split(",");
        System.out.println(strs);
        System.out.println(strs.length);
        int[] a2 = new int[strs.length];
        for(int i = 0; i < strs.length; i++){
            a2[i] = Integer.parseInt(strs[i]);
        }

大家好,很抱歉第一次没有说清楚,我希望用户输入格式,如“,”+任何正数或负数,并且可以容忍空格,就像“1,-2,1,3,+ 55"

4

2 回答 2

5

为此,您根本不需要正则表达式,只需String#split(",")and Integer#parseInt()

无论如何,单独的正则表达式不足以将字符串转换为数字。

于 2013-03-08T20:09:42.243 回答
3

要验证您的输入,您可以使用类似

if (text.matches("-?\\d+(,\\s?-?\\d+)*")){
    //try to split
}else{
    //inform user about wrong data format
}
  • -?表示减号是可选的
  • \\d+表示一位或多位数字,
  • ,\\s?-?\\d+表示“逗号”、“空白”(一个或无)、“减号”(一个或无)、“数字”(一个或多个)、
  • (,\\s?-?\\d+)*意味着这个结构可以出现零次或多次。
于 2013-03-08T20:13:14.577 回答