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