2016-07-08 21 views

答えて

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]); 
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); 
} 

は、サブ文字列からの文字列配列を作成し、でそのコレクションを並べ替えます逆順。逆順ソートされた配列の配列があり、現在の文字列にそれらを追加します。希望の結果を持つ文字列があります。

あるいは、より良い解決策は、StringBuilder

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

になりますこれはまた、正しい動作します。

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); 
    } 
} 

このワンライナーを試してみてください

関連する問題