>  기사  >  Java  >  Java에서 임의의 문자열 배열을 생성하는 방법 소개

Java에서 임의의 문자열 배열을 생성하는 방법 소개

黄舟
黄舟원래의
2017-08-10 09:59:394142검색

이 글에서는 Java의 임의 문자열 배열 생성에 대한 자세한 예제를 주로 소개합니다. 주로 Collections.sort() 메서드를 사용하여 일반 문자열 목록을 정렬하는 데 도움이 필요하면 참조할 수 있습니다.

Java 생성 자세한 설명 무작위 문자열 배열의 예

일반 유형이 문자열인 목록을 정렬하려면 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 길이가 있는 임의의 문자열을 생성합니다. of 10 String

2.1 10 이내이고 난수성을 만족하므로 여기서는 Math.random() 함수를 사용하고, 그 반환값은 0.0~1.0


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인 임의의 문자열을 생성합니다. 3.1 위의 두 단계를 통과한 다음 외부에 for 루프를 중첩하면 10개의 임의 문자열을 생성할 수 있습니다


4. 10개의 임의 문자열을 저장하는 ListArrayf7e83be87db5cd2d9a8a0b8117b38cd4 컬렉션을 만듭니다.

4.1 문자열 유형 컬렉션을 만듭니다. 단계는 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.