我对 Java 还很陌生,因为我最近刚刚在类(class)中学习了这个主题。我仍然对如何将排序后的输入对齐到指定位置感到困惑。
例如您输入:1,2,3,4,5 输出将是所有奇数将在奇数文本/标题下对齐,然后所有偶数将落在偶数标题下。
这是我的代码:
public static void main(String[] args) {
int num;
String odd="",even="",var, output="";
for (int cntr = 0; cntr < 5; cntr++){
var = JOptionPane.showInputDialog("Input Number: ");
num = Integer.parseInt(var);
if (num % 2 == 1)
odd = odd +"\n"+ String.valueOf(num);
if (num % 2 == 0)
even = even+"\n"+ String.valueOf(num);
output = odd +"\t"+even;
}
System.out.print("Odd\tEven"+ output);
问题是,当您运行它时,输出是这样的,它被排序为顶部数字是奇数,然后底部数字是偶数,但它在奇数标题下对齐。
你能推荐什么?新成员来了。很高兴认识大家!
最佳答案
错误的方法,您正确区分奇数和偶数,但字符串不是按照所述打印它们的方式。你结束于:
odd = "1\n3\n5\n"
even = "2\n4\n"
output = "1\n3\n5\n\t2\n4\n"
也就是说,所有赔率数字(一个接着一个),a 选项卡,然后是偶数。
您需要以更结构化的方式存储数字;最好的选择是两个java.util.ArrayList<Integer>
。获得两个整数列表后,打印它们应该会更容易(对于第一行,打印第一个偶数、制表符,然后打印第一个奇数;不要忘记检查列表的大小是否不同)。
这还有一个额外的好处,如果明天呈现结果的方式发生变化,您无需更改将每个数字放入其列表中的逻辑(将业务逻辑与呈现/UI 解耦) )。
关于java - Java中简单的奇数和偶数排序与对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31977074/