不使用数组进行数字搜索

时间:2019-02-06 09:44:24

标签: java

如何编写Java程序以从用户那里获取数字,从而无需使用数组即可删除奇数并显示偶数(例如: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个这样的数字而不使用数组。

2 个答案:

答案 0 :(得分:2)

将int输入解析为字符串,替换所有奇数位,然后输出输出(如果需要,解析回int):

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

答案 1 :(得分:1)

您可以逐个字符地输入字符,仅将偶数添加到输出字符串中。

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.getNumericValuechar转换为其数值