如何取一个字符串的一部分并按反向字母顺序对其进行排序?

时间:2016-07-08 06:15:53

标签: java string sorting

我想实现这样的目标:

String str = "Good Morning;
String subStr = str.substring(0,7);

然后我想按相反顺序对字母进行排序。

我希望我的输出为:ooMGd

3 个答案:

答案 0 :(得分:2)

一种简单的方法:

String str = "Good Morning";
String subStr=str.substring(0,7);
char[] arr = subStr.toCharArray();
Arrays.sort(arr); 
for(int i = arr.length - 1; i >= 0; i--) 
System.out.print(arr[i]);

答案 1 :(得分:0)

尝试 -

    public static void main(String[] args) throws IOException
{

    String str="Good Morning;" ;
    String[] subStr=str.substring(0,7).split("");
    Arrays.sort(subStr,Collections.reverseOrder());
    String s ="";
    for(int i=0;i<subStr.length;i++)
    {
        s+=subStr[i];
    }
    System.out.println(s);
}

从子字符串创建一个String数组,并按相反的顺序对该集合进行排序。你有一个逆序排序的字符串数组现在将它们附加到一个字符串,你有一个具有所需结果的字符串。

或者更好的解决方案是StringBuilder

     String str = "Good Morning";
     String s = new StringBuilder(str.substring(0, 7)).reverse().toString();
     System.out.println(s);

这也是正确的。

答案 2 :(得分:0)

为什么不使用StringBuilder对象?

试试这个单行:(new StringBuilder(str.substring(0, 7))).reverse().toString();

完整的例子(包括排序):

package testing.project;

import java.util.Arrays;

public class Main {

    public static void main(String[] args) {
        String str = "Good Morning";

        char[] sorted = new StringBuilder(str.substring(0, 7)).reverse().toString().toCharArray();
        Arrays.sort(sorted);

        String reversedString = new StringBuilder(new String(sorted)).reverse().toString();

        System.out.println(reversedString);
    }
}