为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

翻翻过去那场雪 2023-09-20 17:07:48
我想将随机输入字符串数组排列到一个表中,看起来使用循环和 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 | biggestsmallest | small | medium | big | biggestsmallest | small | medium | big | biggestsmallest | small | medium | big | biggestsmallest | small | medium | big | biggest请教我,因为我对java很陌生。谢谢
查看完整描述

2 回答

?
繁星coding

TA贡献1797条经验 获得超4个赞

在这里,我们使用 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


查看完整回答
反对 回复 2023-09-20
?
喵喔喔

TA贡献1735条经验 获得超5个赞

您需要使用 equals 方法比较两个字符串。

if ((cow[i][j]).equals("small")) {
........ }


查看完整回答
反对 回复 2023-09-20
  • 2 回答
  • 0 关注
  • 59 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信