2012-11-26 4 views
4

자동 단위 테스트를 위해 ScalaCheck를 사용하고 있습니다. 기본 문자열 생성기 (즉, 기본값 인 Arbitrary[String] 인스턴스)는 도 역시입니다. 일반적으로 지원하지 않으려는 문자와 주로 내 시스템에서 렌더링 할 수없는 문자로 구성된 읽을 수없는 jumble을 생성합니다.자바에서 임의로 * 흥미로운 문자열 생성

나는 더 많은 수의 Arbitrary[String] 인스턴스를 만들기 위해 착수했으며, 무엇이 있는지 알아 내려고 노력 중입니다.

  • 기본 다국어 평면 문자열
  • 별 문자열 (확장 A/B 포함)
  • 라틴계 문자열을
  • 프랑스어 단어
  • : 다음은 테스트를 위해 도움이 될 것입니다 문자열 클래스의 몇 가지 예입니다 왼쪽에서 오른쪽 방향 언어 문자열
  • 오른쪽에서 왼쪽 방향 언어 문자열
  • 중국어 문장
  • "웹 문자열"
  • 당신의 상상력을 사용 (웹 컨텐츠의 99.9999 %를 구성하는 문자 집합에서 가져온 문자열) ...

이 다음을 할 수 거기 도서관, 또는 유사한 문자열 , 무작위?

+1

마르코프 체인을 가져와야합니다 ... – SLaks

답변

1

다른 접근 방식을 사용합니다. 모든 예제는 유니 코드의 문자 블록에 매핑됩니다. http://www.fileformat.info/info/unicode/block/index.htm을 참조하십시오. 원하는 블록을 선택한 다음 해당 범위로 제한된 임의의 문자열을 생성하십시오.

int count = 10; 
StringBuilder out = new StringBuilder(); 
Random rand = new Random(0); 
for (int i = 0; i < count; i++) { 
    char ch = rand.nextInt(numCharsInRange) + firstCharInRange; 
    out.append(ch); 
} 
return out.toString(); 

또 다른 접근법은 다른 언어의 사전 구성된 텍스트의 무작위 스 니펫을 잡는 것입니다. 여기에 몇 개 붙잡을 수 있습니다 : http://www.unicode.org/standard/WhatIsUnicode.html 번역을보세요.

0

다음과 같이

RandomStringUtils.random(10, true, false) 

매개 변수는 시도 : int count, boolean letters, boolean numbers

당신은 org.apache.commons.lang.RandomStringUtils;