Heim > Java > javaLernprogramm > Einführung in die Generierung eines zufälligen String-Arrays in Java

Einführung in die Generierung eines zufälligen String-Arrays in Java

黄舟
Freigeben: 2017-08-10 09:59:39
Original
4242 Leute haben es durchsucht

In diesem Artikel werden hauptsächlich relevante Informationen zu Javas detaillierten Beispielen für die Generierung zufälliger String-Arrays vorgestellt. Er verwendet hauptsächlich die Methode Collections.sort(), um die Liste der generischen Strings zu sortieren.

Detailliertes Beispiel für die Generierung eines zufälligen String-Arrays in Java

Verwenden Sie die Methode Collections.sort(), um eine Liste zu sortieren, deren generischer Typ String ist. Spezifische Anforderungen:

1. Fügen Sie nach dem Erstellen der Liste zehn zufällige Zeichenfolgen hinzu.
Die Länge jeder Zeichenfolge ist eine zufällige Ganzzahl innerhalb von 10.
3 string ist ein zufällig generiertes Zeichen und die Zeichen können sich überlappen
4. Jede zufällige Zeichenfolge kann nicht wiederholt werden

Das erforderliche Wissen ist: String, StringBuffer, ListArray, Generics, Collections.sort, foreach Zufälliges und anderes verwandtes Wissen kann als relativ gute Praxis im JAVA-Lernprozess angesehen werden.

1. Generieren Sie zufällig ein Zeichen

1.1 Speichern Sie zunächst alle Buchstaben und Zahlen 0-9 in einer Zeichenfolge für die spätere Verwendung.


String str = "aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStT
       uUvVwWxXyYzZ0123456789";
Nach dem Login kopieren

1.2 Um die Zufälligkeit zu erfüllen, erstellen Sie ein Random-Objekt und verwenden Sie die Methode nextInt(str.length), um eine 0-str.-Länge zu generieren Zufallszahl.


Random random = new Random();
int index = random.nextInt(str.length());
Nach dem Login kopieren

1.3 Verwenden Sie dann die oben generierte Zufallszahl als Index der Zeichenfolge str, um das entsprechende Zeichen abzurufen, und generieren Sie zufällig ein Zeichen


char c = str.charAt(index);
Nach dem Login kopieren

2. Erzeugen Sie eine zufällige Zeichenfolge mit einer Länge innerhalb von 10

2.1 Weil sie innerhalb von 10 liegt und die Anforderungen erfüllt Zufälligkeit , daher wird hier die Funktion Math.random() verwendet und ihr Rückgabewert ist eine zufällige Zahl vom Typ Double 0,0 - 1,0


StringBuffer stringBuffer = new StringBuffer();
//确定字符串长度
int stringLength = (int) (Math.random()*10);
Nach dem Login kopieren

2.2 Jetzt die Zeichenfolge Die Länge kann bestätigt und zufällige Zeichen generiert werden. Verwenden Sie dann die for-Schleife, um eine zufällige Zeichenfolge mit einer Länge von weniger als 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();
Nach dem Login kopieren
zu generieren

3. Generieren Sie 10 zufällige Zeichenfolgen

3.1 Nach den beiden oben genannten Schritten und verschachteln Sie dann eine for-Schleife außerhalb, können Sie 10 zufällige Zeichenfolgen generieren

4. Erstellen Sie eine ListArray-Sammlung

4.1 Erstellen Sie eine String-Typ-Sammlung. Dieser Schritt sollte gleichzeitig mit Schritt 3 abgeschlossen werden


List<String> listString = new ArrayList<String>();
Nach dem Login kopieren

4.2 Fügen Sie der Sammlung jedes Mal eine generierte Zeichenfolge hinzu. Achten Sie darauf, die Methode „Contains()“ der Sammlung zu verwenden, um festzustellen, ob dieselbe Zeichenfolge bereits in der Sammlung vorhanden ist (obwohl die Wahrscheinlichkeit sehr gering ist).


//判断当前的list容器中是否已有刚生成的字符串,满足每条字符串不可重复性
if(!(listString.contains(stringBuffer.toString()))){
   listString.add(stringBuffer.toString());
 }else {
   //i-- 如果不满足则重新生成
  i--;
 }
Nach dem Login kopieren

5 Sortieren Sie abschließend die Sammlung

5.1 Rufen Sie zum Sortieren die Methode Collections.sort() auf Die Sortierregeln lauten wie folgt:

  • von links nach rechts und 0-9

  • Zahlenpriorität und A-Z

  • Das Prioritätsprinzip der Groß-/Kleinschreibung und a-z

Der Gesamtcode


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;
  }
}
Nach dem Login kopieren

Die Ausgabeantwort ist nicht eindeutig

Das obige ist der detaillierte Inhalt vonEinführung in die Generierung eines zufälligen String-Arrays in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage