由于某些原因,此代码不起作用。字符串替换不适用于for循环 - Java
public void actionPerformed(ActionEvent e) {
Random random = new Random();
int randomChar = random.nextInt((23 - 0) + 1);
for(int x = 23;x > 0;x--) {
String text;
text = original.getText();
text = text.toLowerCase();
text = text.replace(alphabet[x], alphabet[randomChar]);
newText.setText(text);
}
只是为了清除一些东西原来和newText是JTextField和字母表是一个字符数组与a-z。
现在当我运行它时,它应该经过并用随机的字符替换每个字符,从Z开始到A结束,但它只是给我输入完全相同的字符串,只是转换为小写。
值得一提的是,如果我取代
text = text.replace(alphabet[x], alphabet[randomChar]);
随着
text = text.replace(alphabet[0], alphabet[randomChar]);
而且放了一堆A的进入输入框中它不改变它们为一个随机的信。 EG:
aaaa input
llll output
or gggg output
它只是不工作,如果我有一个变量在那里。
其余代码并不重要,它都是声明变量并设置GUI。
任何帮助非常感谢!
尝试打印随机字符并在循环中输入字符串,以便您可以调试正在进行的操作并确保字符串实际上包含字符。 – SamTebbs33 2014-10-05 17:44:24
这两个工作正常,X递减和随机选择随机数(一旦我把它移到for循环内,这并没有解决问题btw) – Unknown 2014-10-05 17:51:43