gpt4 book ai didi

java - 将字符串变量拆分为指定长度的随机子字符串

转载 作者:行者123 更新时间:2023-11-30 10:25:04 25 4
gpt4 key购买 nike

在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()));

应该返回 abcdbcde 大约相同的次数。相反,它正在返回:bcde编码器abcde。任何有关如何解决此问题的信息都会有很大帮助,谢谢!

最佳答案

您的代码在 0 和 length 之间的随机索引处获取一个子字符串,不包括在内。您必须指定结束索引,这样它就不会延伸到字符串的末尾。您还需要减少起始索引的范围,以便结束索引不会超过字符串:

int randomNum = rand.nextInt(text.length() - length + 1);
String answer = text.substring(randomNum, randomNum + length);

关于java - 将字符串变量拆分为指定长度的随机子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46416417/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com