java. 지정된 길이의 텍스트의 무작위로 선택된 부분 문자열을 반환하려면 난수 생성기를 사용해야합니다. 길이가 부의 값의 경우, 또는 텍스트의 길이보다 큰 경우, 메소드는 IllegalArgumentException를 throw합니다. 예를 들어, chooseSubstring ("abcde", 4, 새로운 Random())은 시간의 절반 정도 "abcd"를, 시간의 절반은 "bcde"를 반환합니다.문자열 변수를 지정된 길이의 임의의 부분 문자열로 분할합니다.
public static String chooseSubstring (String text, int length, Random rand)
{
int randomNum = rand.nextInt(length);
String answer = text.substring(randomNum);
return answer;
}
는 기본적으로, 변수 텍스트에서 문자열을 반환합니다. 하위 문자열은 가변 길이의 길이 여야합니다. 이 부분 문자열의 시작 부분은 난수 생성기가 결정한 임의의 위치에서 시작해야합니다. 내 문제는 난수 생성기가 부분 문자열이 올바른 길이인지 확인하지 못한다는 것입니다.
System.out.println(chooseSubstring("abcde", 4, new Random()));
는 시간의 동일한 금액에 대해
abcd
및
bcde
를 반환해야합니다. 대신 반환 중입니다 :
bcde
cde
de
abcde
. 이 문제를 해결하는 방법에 대한 정보는 큰 도움이 될 것입니다!
'randomNum'은 '0'에서 '길이'(배타적)까지의 값입니다. 0, 1, 2 또는 3 중 하나가됩니다. –