Java 不使用数组的数字搜索

Java 不使用数组的数字搜索,java,Java,如何编写一个Java程序从用户那里获取一个数字,从中删除奇数并显示偶数,而不使用arrayEx:i/p:2345678,o/p:2468 我可以用数组 public class NumberSearch { /** * @param args the command line arguments */ public static void main(String[] args) { // TODO code application logic

如何编写一个Java程序从用户那里获取一个数字,从中删除奇数并显示偶数,而不使用arrayEx:i/p:2345678,o/p:2468

我可以用数组

public class NumberSearch {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        int n[] = {1,2,3,4,5,6};
        System.out.println("Even number");
        for(int i=0;i<n.length;i++){
            if(n[i]%2==0){
                System.out.println(n[i]);
            }
        } 
}}  

但我想在不使用数组的情况下处理这样的123456个数字。

将int输入解析为string,替换所有奇数,并在需要时打印输出解析回int:

    int input  = 123456;
    String str = String.valueOf(input);
    String res = str.replaceAll("[13579]", "");
    System.out.println(res);

您可以逐个字符,只向输出字符串中添加偶数

String input = "2345678";

StringBuilder sb = new StringBuilder();
for(char c : input.toCharArray()) {
    if(Character.getNumericValue(c) % 2 == 0) {
        sb.append(c);
    }
}
String output = sb.toString();

System.out.println(output);
产出:

2468
我正在使用StringBuilder,因为它在循环中更有效。 您需要使用Character.getNumericValue将字符转换为其数值
您计划如何存储这些号码?可以使用字符串。是否要输入字符串,将其提取到数组,将字符串转换为整数,然后计算它们是否为偶数?最大数字是9吗?从中去掉奇数,你是指数字而不是数字?所以像6278391508这样的输入将导致62808?提示:要清楚措辞。您需要一个数字123456,然后对于数字1、2、3中的每个数字。。。您需要确定作为数字的单个数字是否为奇数/偶数。这就引出了你的答案:不要想数字,而要想字符串。然后遍历该字符串,并为每个字符确定相应的数字是否为奇数/偶数。将数字作为整数而不是字符串获取。不使用数组时,显示偶数并删除奇数。示例int n=123456;在不使用数组的情况下处理它,并显示246与我的处理方式类似,但将1 | 3 | 5 | 7 | 9替换为[13579]:请看,我们必须在运行时获取输入。我指定要了解该做什么。@sugani我将把这作为一个单独的问题。