ググればできたけど、これ何も見ずにコーディングできるようになるかなあ。。
Solution (ascending order)
- Stringをchar arrayに変換する
String tmp = "dcaebf"; char[] array = tmp.toCharArray();
- char arrayをsortする
Arrays.sort(array);
(注) import java.util.Arrays
が必要。
- char arrayをStringに変換する
String ascStr = new String(array);
Solution (descending order)
これに関しては、ググっても便利そうなメソッドはなく、自身で行う必要がありそうでした。
- Stringをchar arrayに変換する
- ascending orderと同じくsortを行う
- for文で逆ループを行う
- char arrayのcharをStringに変換し、StringBuilderでappendしていく
StringBuilder sb = new StringBuilder(); for(int i=array.length-1; i>=0; i--) { sb.append(Character.toString(array[i])); }
- 作ったsbはStringBuilder型なので、String型に戻す
sb.toString();
参考コード
import java.util.Scanner; import java.util.Arrays; public class Main19 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String inputA = scanner.nextLine(); String inputB = scanner.nextLine(); char[] arrayA = inputA.toCharArray(); char[] arrayB = inputB.toCharArray(); Arrays.sort(arrayA); Arrays.sort(arrayB); String desStr = new String(arrayA); StringBuilder revStr = new StringBuilder(); for(int i=arrayB.length-1; i>=0; i--) { revStr.append(Character.toString(arrayB[i])); } if(desStr.compareTo(revStr.toString()) >= 0) { System.out.println("No"); } else { System.out.println("Yes"); } } }