【发布时间】:2017-10-06 05:44:22
【问题描述】:
所以我试图将一个字符串(有罪)更改为同一字符串的加扰版本。唯一不随机的是任何双字母都必须放在一起。因此,如果我有字符串“pharmacy”,它必须是“mraacpyh”之类的东西。我以为我明白了,但现在我得到了一个 StringIndexOutOfBoundsException。谁能阐明我做错了什么?
String guilty = "";
String scramble = "";
if (killer == 0)
guilty = "pharmacy";
if (killer == 1)
guilty = "closet";
if (killer == 2)
guilty = "newspaper";
if (killer == 3)
guilty = "dollar";
if (killer == 4)
guilty = "college";
while (!guilty.equals("")){
int i = r.nextInt(guilty.length());
for (int j = 0; j < guilty.length()-guilty.replace(guilty.substring(i, i+1), "").length(); i++){
scramble = scramble + guilty.substring(i, i+1);
}
guilty = guilty.replace(guilty.substring(i, i+1), "");
System.out.println(scramble);
System.out.println(guilty);
}
【问题讨论】:
-
您应该将 while 循环更改为 if 语句。
if(!guilty.equals("")){ -
你的代码很不完整。我们不知道杀手从一开始就在做什么。粘贴您的完整代码。
-
@progyammer 可能是杀戮,因为这部分代码试图找到有罪的一方。
标签: java for-loop indexoutofboundsexception