【发布时间】:2017-09-26 01:20:34
【问题描述】:
在java中。 它应该使用随机数生成器返回一个随机选择的具有指定长度的文本子字符串。如果长度为负数或大于文本长度,则该方法应抛出 IllegalArgumentException。例如,chooseSubstring("abcde", 4, new 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;
}
基本上,我想从变量 text 返回一个子字符串。子字符串必须是可变长度的长度。此子字符串的开头应从由随机数生成器确定的随机位置开始。我的问题是随机数生成器无法确保子字符串的长度正确。
System.out.println(chooseSubstring("abcde", 4, new Random()));
返回 abcd 和 bcde 的次数应该差不多。相反,它正在返回:
bcde
cde
de
abcde。
任何有关如何解决此问题的信息都会非常有帮助,谢谢!
【问题讨论】:
-
randomNum是从0到length(不包括)的值。它将是 0、1、2 或 3 之一。