検索
ホームページJava&#&チュートリアルJava でランダムな文字列配列を生成する方法の概要

この記事では、主に Java のランダムな文字列配列を生成する詳細な例に関する関連情報を紹介します。主に Collections.sort() メソッドを使用して汎用文字列のリストを並べ替えます。必要な方は参照してください。

Java 生成の詳細な説明ランダムな文字列配列の例

ジェネリック型が String である List を並べ替えるには、Collections.sort() メソッドを使用します。具体的な要件:

1. List を作成した後、それに 10 個のランダムな文字列を追加します
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() メソッドを呼び出してコレクションを並べ替えます。並べ替えルールは次のとおりです:


原則は左から右、0。 -9
  • 数字が優先され、A-Z
  • 文字が優先され、a-z

  • 合計コード

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) {
    List strList = 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 サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
JVMがJavaコードと基礎となるオペレーティングシステムの間の仲介者としてどのように機能するかを説明します。JVMがJavaコードと基礎となるオペレーティングシステムの間の仲介者としてどのように機能するかを説明します。Apr 29, 2025 am 12:23 AM

JVMは、Javaコードをマシンコードに変換し、リソースを管理することで機能します。 1)クラスの読み込み:.classファイルをメモリにロードします。 2)ランタイムデータ領域:メモリ領域を管理します。 3)実行エンジン:実行バイトコードを解釈またはコンパイルします。 4)ローカルメソッドインターフェイス:JNIを介してオペレーティングシステムと対話します。

Javaのプラットフォーム独立におけるJava Virtual Machine(JVM)の役割を説明します。Javaのプラットフォーム独立におけるJava Virtual Machine(JVM)の役割を説明します。Apr 29, 2025 am 12:21 AM

JVMにより、Javaはプラットフォームを介して実行できます。 1)jvmは、bytecodeをロード、検証、実行します。 2)JVMの作業には、クラスの読み込み、バイトコード検証、解釈の実行、およびメモリ管理が含まれます。 3)JVMは、動的クラスの読み込みや反射などの高度な機能をサポートしています。

さまざまなオペレーティングシステムでJavaアプリケーションが正しく実行されるようにするために、どのような措置を講じますか?さまざまなオペレーティングシステムでJavaアプリケーションが正しく実行されるようにするために、どのような措置を講じますか?Apr 29, 2025 am 12:11 AM

Javaアプリケーションは、次の手順を通じて異なるオペレーティングシステムで実行できます。1)ファイルまたはパスクラスを使用してファイルパスを処理します。 2)System.getEnv()を介して環境変数を設定および取得します。 3)MavenまたはGradleを使用して、依存関係を管理し、テストします。 Javaのクロスプラットフォーム機能は、JVMの抽象化レイヤーに依存していますが、特定のオペレーティングシステム固有の機能の手動処理が必要です。

Javaがプラットフォーム固有の構成またはチューニングを必要とする領域はありますか?Javaがプラットフォーム固有の構成またはチューニングを必要とする領域はありますか?Apr 29, 2025 am 12:11 AM

Javaには、さまざまなプラットフォームでの特定の構成とチューニングが必要です。 1)-XMSや-XMXなどのJVMパラメーターを調整して、ヒープサイズを設定します。 2)ParallelGCやG1GCなどの適切なごみ収集戦略を選択します。 3)さまざまなプラットフォームに適応するようにネイティブライブラリを構成します。これらの測定により、Javaアプリケーションはさまざまな環境で最適に機能することができます。

Java開発におけるプラットフォーム固有の課題に対処するのに役立つツールやライブラリは何ですか?Java開発におけるプラットフォーム固有の課題に対処するのに役立つツールやライブラリは何ですか?Apr 29, 2025 am 12:01 AM

Osgi、apachecommonslang、jna、andjvmoptionsareeffectiveforformplatform-specificchallengesinjava.1)osgimanagesdependenciesandisolatescomponents.2)apachecommonslangprovidesutilityfunctions.3)jnaallowsnativecode.4)

JVMは、さまざまなプラットフォームでガベージコレクションをどのように管理していますか?JVMは、さまざまなプラットフォームでガベージコレクションをどのように管理していますか?Apr 28, 2025 am 12:23 AM

jvmmanagesgarbagecollectionacrossplatformseftivivivivitybyusagenerationalaphadadadaptingtosandhardwaredefferences.itemployscollectorslikeserial、parallel、cms、andg1、各sutitedfordifferentscenarios

なぜJavaコードは変更せずに異なるオペレーティングシステムで実行できるのですか?なぜJavaコードは変更せずに異なるオペレーティングシステムで実行できるのですか?Apr 28, 2025 am 12:14 AM

Javaは、Javaの「Write and Averywherewhere」という哲学がJava Virtual Machine(JVM)によって実装されているため、変更なしで異なるオペレーティングシステムで実行できます。コンパイルされたJavaバイトコードとオペレーティングシステムの間の仲介者として、JVMはバイトコードを特定のマシン命令に変換し、JVMがインストールされた任意のプラットフォームでプログラムが独立して実行できることを確認します。

Javaプログラムをコンパイルして実行するプロセスを説明し、プラットフォームの独立性を強調します。Javaプログラムをコンパイルして実行するプロセスを説明し、プラットフォームの独立性を強調します。Apr 28, 2025 am 12:08 AM

Javaプログラムの編集と実行は、BytecodeとJVMを通じ​​てプラットフォームの独立性を達成します。 1)Javaソースコードを書き、それをbytecodeにコンパイルします。 2)JVMを使用して、任意のプラットフォームでByteCodeを実行して、コードがプラットフォーム間で実行されるようにします。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール