Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中按降序排序数组_Java_Algorithm - Fatal编程技术网

在Java中按降序排序数组

在Java中按降序排序数组,java,algorithm,Java,Algorithm,我试图编写一个程序,首先对给定的字符串逐个排序,然后按降序对所有字符串进行排序。我成功地按字符对字符串进行排序,但在按字符对所有已排序的字符串进行排序时遇到了问题。我尝试使用Array.sort()进行排序,但它没有递减排序,它只对第一个输入进行排序,而不是对已排序的数组进行排序 package com.company; import java.util.Arrays; import java.util.Scanner; public class Main { static

我试图编写一个程序,首先对给定的字符串逐个排序,然后按降序对所有字符串进行排序。我成功地按字符对字符串进行排序,但在按字符对所有已排序的字符串进行排序时遇到了问题。我尝试使用Array.sort()进行排序,但它没有递减排序,它只对第一个输入进行排序,而不是对已排序的数组进行排序

    package com.company;

import java.util.Arrays;
import java.util.Scanner;

public class Main {
    static void sortString(String str)
    {
        char[] chArr = str.toCharArray();
        String SortString = "";
        for (int i = 0; i< chArr.length; i++)
        {
            for (int j = 0; j< chArr.length; j++)
            {
                if(chArr[i] > chArr[j])
                {
                    char temp = chArr[i];
                    chArr[i] = chArr[j];
                    chArr[j] = temp;
                }
            }
        }
        String[] SortedString = new String[5];

        for (int k = 0; k<chArr.length;k++)
        {
            SortString = SortString + chArr[k];
        }
        Arrays.sort(SortedString);
        for (int counter = 0; counter<5; counter++)
        {
            System.out.println(SortedString[counter]);
        }


    }
    public static void main(String[] args)
    {
        Scanner UserInput = new Scanner (System.in);

        String[] names = new String[5];

        for (int counter = 0; counter<5; counter++)
        {
            do
            {
                System.out.print("Input String #" + (counter+1) + ": ") ;
                names[counter] = UserInput.next().toLowerCase();
            }while(names[counter].length() > 25);

        }
        UserInput.close();
        Arrays.sort(names);
        for (int counter = 0; counter<5; counter++)
        {
            sortString(names[counter]);
        }


    }

}
package.com公司;
导入java.util.array;
导入java.util.Scanner;
公共班机{
静态void排序字符串(字符串str)
{
char[]chArr=str.toCharArray();
字符串SortString=“”;
for(int i=0;ichArr[j])
{
char temp=chArr[i];
chArr[i]=chArr[j];
chArr[j]=温度;
}
}
}
字符串[]SortedString=新字符串[5];
对于(int k=0;k
静态字符串排序字符串(String str)
{
char[]chArr=str.toCharArray();
for(int i=0;ichArr[j])
{
char temp=chArr[i];
chArr[i]=chArr[j];
chArr[j]=温度;
}
}
}
返回新字符串(chArr);
}
公共静态void main(字符串[]args)
{
扫描仪用户输入=新扫描仪(System.in);
字符串[]名称=新字符串[5];
用于(整数计数器=0;计数器25);
}
UserInput.close();
//数组。排序(名称);此处无点排序
字符串[]字符串=新字符串[5];
对于(int计数器=0;计数器=0;i--){
System.out.println(strings[i]);
}
}

您是否尝试过使用Collections.reverseOrder()?谢谢你的回答我试着编译了它,但它并没有对每个字符串进行排序,如果你粘贴到你的主类中,它会的。输入:Input Inputz Java Javax Python输出:pthony Inputz Inputtu ajavx ajav预期输出:zutpni xvjaa ytponh vjaa Utpninerm我用你代码的最后一部分得到了它。非常感谢你是一个救命稻草请添加一些解释。仅仅删除只使用代码的答案并不是一件好事。人们通过理解来学习,这对上下文信息更有效。
static String sortString(String str)
{
    char[] chArr = str.toCharArray();
    for (int i = 0; i< chArr.length; i++)
    {
        for (int j = 0; j< chArr.length; j++)
        {
            if(chArr[i] > chArr[j])
            {
                char temp = chArr[i];
                chArr[i] = chArr[j];
                chArr[j] = temp;
            }
        }
    }
    
    return new String(chArr);
}

public static void main(String[] args)
{
    Scanner UserInput = new Scanner (System.in);

    String[] names = new String[5];

    for (int counter = 0; counter<5; counter++)
    {
        do
        {
            System.out.print("Input String #" + (counter+1) + ": ") ;
            names[counter] = UserInput.next().toLowerCase();
        }while(names[counter].length() > 25);

    }
    UserInput.close();
    // Arrays.sort(names);   No point sorting here
    
    String[] strings = new String[5];
    for (int counter = 0; counter<5; counter++)
    {
        strings[counter] = sortString(names[counter]);
    }

     Arrays.sort(strings);

      // increasing order:
     for(String s : strings) {
         System.out.println(s);
     }
     
     // decreasing order:        
     for(int i = 4; i >= 0; i--) {
         System.out.println(strings[i]);
     }
}