我想实现这样的目标:
String str = "Good Morning;
String subStr = str.substring(0,7);
然后我想按相反顺序对字母进行排序。
我希望我的输出为:ooMGd
答案 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);
}
}