Javaで文字列をシャッフルする方法


  1. 文字列を文字の配列に変換し、Collectionsクラスのshuffleメソッドを使用する方法:
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class StringShuffler {
    public static void main(String[] args) {
        String input = "Hello, World!";
        List<Character> characters = new ArrayList<>();

        for (char c : input.toCharArray()) {
            characters.add(c);
        }

        Collections.shuffle(characters);

        StringBuilder shuffledString = new StringBuilder();
        for (char c : characters) {
            shuffledString.append(c);
        }

        System.out.println(shuffledString.toString());
    }
}
  1. 文字列を文字の配列に変換し、自前のシャッフルアルゴリズムを使用する方法:
public class StringShuffler {
    public static void main(String[] args) {
        String input = "Hello, World!";
        char[] characters = input.toCharArray();

        for (int i = characters.length - 1; i > 0; i--) {
            int j = (int) (Math.random() * (i + 1));
            char temp = characters[i];
            characters[i] = characters[j];
            characters[j] = temp;
        }

        String shuffledString = new String(characters);
        System.out.println(shuffledString);
    }
}
  1. 文字列を文字の配列に変換し、Fisher-Yatesアルゴリズムを使用する方法:
public class StringShuffler {
    public static void main(String[] args) {
        String input = "Hello, World!";
        char[] characters = input.toCharArray();

        for (int i = characters.length - 1; i > 0; i--) {
            int j = (int) (Math.random() * (i + 1));
            char temp = characters[i];
            characters[i] = characters[j];
            characters[j] = temp;
        }

        String shuffledString = new String(characters);
        System.out.println(shuffledString);
    }
}

これらの方法を使用すると、Javaで文字列をシャッフルすることができます。どの方法を選ぶかは、具体的な要件やパフォーマンスの要求によって異なります。