この記事では、主に Java のランダムな文字列配列を生成する詳細な例に関する関連情報を紹介します。主に Collections.sort() メソッドを使用して汎用文字列のリストを並べ替えます。必要な方は参照してください。
Java 生成の詳細な説明ランダムな文字列配列の例
ジェネリック型が String である List を並べ替えるには、Collections.sort() メソッドを使用します。具体的な要件:
1. List
2. 各文字列の長さは 10 以内のランダムな整数です
3. 各文字列の各文字はランダムに生成されます。
4. 各ランダム文字列は繰り返すことができません
必要な知識は次のとおりです: String、StringBuffer、ListArray、generics、Collections.sort、foreach、Random、およびその他の関連知識。これらは、JAVA 学習プロセスのより良い実践と見なされます。 。
1. 文字をランダムに生成します
1.1 まず、後で使用できるように、0 ~ 9 のすべての文字と数字を文字列に保存します。
String str = "aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStT uUvVwWxXyYzZ0123456789";
1.2 ランダム性を満たす必要があるため、Random オブジェクトを作成し、nextInt(str.length) メソッドを使用して 0 — str.length の乱数を生成します。
Random random = new Random(); int index = random.nextInt(str.length());
1.3 次に、上記で生成された乱数を str 文字列のインデックスとして使用して、対応する文字を取得し、文字をランダムに生成します
char c = str.charAt(index);
2 長さのランダムな文字列を生成します。 10未満のString
2.1 10以内でランダム性を満たしているため、ここではMath.random()関数を使用し、戻り値は0.0から1.0までのランダムなDouble型の数値になります
StringBuffer stringBuffer = new StringBuffer(); //确定字符串长度 int stringLength = (int) (Math.random()*10);
2.2 これで文字列の長さが確認でき、ランダムな文字が生成できるようになりました。 次に、for ループを使用して長さが 10 個未満のランダムな文字列を生成します
for (int j = 0; j < stringLength; j++) { int index = random.nextInt(str.length()); char c = str.charAt(index); stringBuffer.append(c); } //将StringBuffer转换为String类型的字符串 String string = stringBuffer.toString();
3. 10 個のランダムな文字列を生成します。 3.1 パス 上記の 2 つの手順と、外側に for ループをネストすると、10 個のランダムな文字列を生成できます
4. 10 個のランダムな文字列を保存する ListArray
; 4.1 String 型のコレクションを作成します。ステップはステップ 3 と同時に完了する必要があります
List<String> listString = new ArrayList<String>();
4.2 毎回生成される文字列をコレクションに追加します。コレクションの Contains() メソッドを使用して、同じ文字列がコレクションに既に存在するかどうかを確認することに注意してください。 (確率は非常に低いですが)。
//判断当前的list容器中是否已有刚生成的字符串,满足每条字符串不可重复性 if(!(listString.contains(stringBuffer.toString()))){ listString.add(stringBuffer.toString()); }else { //i-- 如果不满足则重新生成 i--; }
5 最後にコレクションを並べ替えます
5.1 Collections.sort() メソッドを呼び出してコレクションを並べ替えます。並べ替えルールは次のとおりです:
import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.Random; public class RandomString { public static void main(String[] args) { ListstrList = randomString(); System.out.println("------随机生成的10条字符串-------"); for (String string : strList) { System.out.println(string); } System.out.println("------------排序后------------"); Collections.sort(strList); for (String string : strList) { System.out.println(string); } } public static List randomString(){ //将所有的大小写字母和0-9数字存入字符串中 String str = "aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ0123456789"; Random random = new Random(); List<String> listString = new ArrayList<String>(); String strArray[ ] = new String[10]; //生成10条长度为1-10的随机字符串 for (int i = 0; i < 10; i++) { StringBuffer stringBuffer = new StringBuffer(); //确定字符串长度 int stringLength = (int) (Math.random()*10); for (int j = 0; j < stringLength; j++) { //先随机生成初始定义的字符串 str 的某个索引,以获取相应的字符 int index = random.nextInt(str.length()); char c = str.charAt(index); stringBuffer.append(c); } //判断当前的list容器中是否已有刚生成的字符串,满足每条字符串不可重复性 if (!(listString.contains(stringBuffer.toString()))) { listString.add(stringBuffer.toString()); }else { i--; } } return listString; } }
出力される答えは一意ではありません
以上がJava でランダムな文字列配列を生成する方法の概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。