存储奇数和偶数的数字

时间:2015-04-27 02:26:59

标签: java arrays

我可以从String获取数字,但似乎只读取一位数的例子,如果我输入Test24 XXX23,它只会读取4和{{1 }}而不是324,我需要帮助存储奇数/偶数数组中的所有数字,并在以后显示它们:Odd(3 5 7),Even(2 4 6) )

23

3 个答案:

答案 0 :(得分:0)

我不完全确定目标是什么,但我有一些建议。首先,如果您想将24和23读取为两个单独的数字而不是一个(例如,当前完成的2423),则调整digits以读取String[] digits = s.replaceAll("[^0-9.\\s+]", "").split("\\s+"); - 这将创建每个数字的字符串数组定义为由一个或多个空格分隔的组(即24和23而不是2423)。其次,你可以创建两个Integer列表,一个用于偶数,一个用于奇数(对于一般消费,不可能知道每个数组的长度(你总是可以使用一个巨大的数字,但这是低效的),这是为什么我建议一个清单)。对于偶数/奇数的%2测试,您有正确的想法,只需更改当前迭代器以迭代每个数字分组中的每个数字:

for(int i=0; i<digits.length; i++){
    for(int j=0; j<digits[i].length(); j++){
        // do stuff
    }
}

答案 1 :(得分:-1)

String inp="Test24 XXX23";
Pattern p=Pattern.compile("[0-9]+");    
Matcher m=p.matcher(inp);
System.out.println(m.matches());
int i=0,j=0,k=0;
int[] even=new int[10];
int[] odd=new int[10];
while (m.find()) {
    System.out.println(inp.substring(m.start(), m.end()));
    i=Integer.parseInt(inp.substring(m.start(), m.end()));
    if(i%2==0){
        even[j]=i;j++;
    }

    else{
        odd[k]=i;k++;
    }


}
System.out.println(even[0]+" "+odd[0]);
>> Extend this program to print all odd and even numbers with for loop

答案 2 :(得分:-1)

以下代码提取数字并生成奇数和偶数数组。这就是你要找的东西。

words[i]