' P '

whatever I will forget

Java String文字列のascending/descending orderの並び替え

ググればできたけど、これ何も見ずにコーディングできるようになるかなあ。。

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

参考サイト

www.geeksforgeeks.org

stackoverflow.com

www.tutorialspoint.com

beginnersbook.com

関連記事

mankozooyork.hatenablog.com