java - 在以 0 结尾的输入循环中获取偶数和奇数整数

标签 java

我正在编写一个程序,用户必须在其中输入整数值, 如果用户输入 0,它将继续接受输入并终止。 虽然效率不是这个练习的问题,但我的代码有很多循环和太多变量。 我还想删除最后一个逗号 (,)

代码:

int[] even = new int[1000];
int[] odd = new int[1000];
int odd_ctr = 0;
int even_ctr = 0;
while(true){

    System.out.print("Enter number: ");
    int num = input.nextInt();
    if(num == 0) break;

    // even
    if(num % 2 == 0){
        even[even_ctr] = num;
        even_ctr++;
    }

    // odd
    else{
        odd[odd_ctr] = num;
        odd_ctr++;
    }

}


System.out.println("Even");
for(int i = 0; i < even_ctr; i++){
    System.out.print(even[i] + ",");
}

System.out.println("\nOdd");
for(int i = 0; i < odd_ctr; i++){
    System.out.print(odd[i] + ",");
}

预期输出:

Even
2,4,6,8
Odd
1,3,5,7,9

实际输出:

Even
2,4,6,8,
Odd
1,3,5,7,9,    

如果有人能使我的代码更简单、更短,我将不胜感激。

编辑: 我不允许使用 ArrayList

最佳答案

这是一个使用 String 的单循环解决方案。

String even = "";
String odd = "";

while(true){
    System.out.print("Enter number: ");
    int num = input.nextInt();
    if(num == 0) break;
    // even
    if(num % 2 == 0) even += num + " ";
    // odd
    else odd += num + " ";
}

System.out.println("Even\n" + even.trim().replace(" ", ","));
System.out.println("Odd\n" + odd.trim().replace(" ", ","));

关于java - 在以 0 结尾的输入循环中获取偶数和奇数整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44580954/

相关文章:

java - 如何从文本文件中读取x个字符

java - 如何定义方法返回 this 的结构类型

java - 字符串替换反斜杠

java - HTML5 Websocket 错误

java - 在 Dos 命令提示符中检查 Scala 的当前版本

java - 如何更改所有设备的用户 session 状态(离开、dnd 等)

java - 缩放 Graphics2D 对象会移动它

java - 如何使用 Selenium WebDriver 和 Java 在网页上单击上传按钮时显示的 Windows 资源管理器上单击“取消”

java - 如何解析此日期格式?

java - Spring 中的 Cron 表达式