gpt4 book ai didi

java - 如何使用表中的 if 函数在循环中排列重复字符串数组

转载 作者:行者123 更新时间:2023-12-01 23:55:33 26 4
gpt4 key购买 nike

我想将随机输入字符串数组排列到一个表中,看起来使用循环和 if 函数或更简单的东西。

有最小、小、中、大、最大。并且字符串各重复 x5

数组是:

    String cow[][] = new String[5][5];

cow[0][0] = "big";
cow[0][1] = "smallest";
cow[0][2] = "small";
cow[0][3] = "medium";
cow[0][4] = "biggest";

cow[1][0] = "smallest";
cow[1][1] = "biggest";
cow[1][2] = "medium";
cow[1][3] = "small";
cow[1][4] = "big";

cow[2][0] = "medium";
cow[2][1] = "biggest";
cow[2][2] = "big";
cow[2][3] = "smallest";
cow[2][4] = "small";

cow[3][0] = "small";
cow[3][1] = "big";
cow[3][2] = "smallest";
cow[3][3] = "medium";
cow[3][4] = "biggest";

cow[4][0] = "biggest";
cow[4][1] = "medium";
cow[4][2] = "big";
cow[4][3] = "small";
cow[4][4] = "smallest";

我的排列数组的代码:

for (int j = 0; j < cow.length; j++) {
for (int i = 0; i < cow[j].length; i++) {
if (cow[i][j] == "smallest") {
System.out.print("| " + cow[i][j] + " |");
} else if (cow[i][j] == "small") {
System.out.print("| " + cow[i][j] + " |");
} else if (cow[i][j] == "medium") {
System.out.print("| " + cow[i][j] + " |");
} else if (cow[i][j] == "big") {
System.out.print("| " + cow[i][j] + " |");
} else if (cow[i][j] == "biggest") {
System.out.print("| " + cow[i][j] + " |");
}
}
System.out.println();
}

当我运行代码时,我只得到
最小|
最小|
最小|
最小|
最小|

我认为这是因为循环没有为其他索引重新循环(?),所以表不是 5x5

我的期望:

smallest | small | medium | big | biggest
smallest | small | medium | big | biggest
smallest | small | medium | big | biggest
smallest | small | medium | big | biggest
smallest | small | medium | big | biggest

请教我,因为我对java很陌生。谢谢

最佳答案

在这里,我们使用 ArrayList 来存储每一行​​,并使用 Collections 类对其进行排序,然后我们为每一行使用 StringJoiner 在值之间添加管道可以在代码注释中查看详细信息。并记住导入所有必要的类

String cow[][] = new String[5][5];

cow[0][0] = "big";
cow[0][1] = "smallest";
cow[0][2] = "small";
cow[0][3] = "medium";
cow[0][4] = "biggest";

cow[1][0] = "smallest";
cow[1][1] = "biggest";
cow[1][2] = "medium";
cow[1][3] = "small";
cow[1][4] = "big";

cow[2][0] = "medium";
cow[2][1] = "biggest";
cow[2][2] = "big";
cow[2][3] = "smallest";
cow[2][4] = "small";

cow[3][0] = "small";
cow[3][1] = "big";
cow[3][2] = "smallest";
cow[3][3] = "medium";
cow[3][4] = "biggest";

cow[4][0] = "biggest";
cow[4][1] = "medium";
cow[4][2] = "big";
cow[4][3] = "small";
cow[4][4] = "smallest";

for (int i = 0; i < cow.length; i++) {
List<String> list = new ArrayList<>(); //list for saving each row
for (int j = 0; j < cow[i].length; j++) {

list.add(cow[i][j]);

}
Collections.sort(list); // sort array
Collections.reverse(list); // reverse array just for better order
String big = list.get(4); // since the biggest comes befor big
list.set(4, list.get(3)); // we need to change them
list.set(3, big);

for(int x=0;x<list.size();x++){
if(x<list.size()-1){ System.out.print(list.get(x)+" | "); }
else { System.out.println(list.get(x)); } }

} // end of outer loop

关于java - 如何使用表中的 if 函数在循环中排列重复字符串数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58203109/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com