以下是我的代码:
char c; Random Generator = new Random(); String text = FormulaArea.getText(); String latestEqn = ""; for(c='a'; c<='z';c++) { int randomNumber = Generator.nextInt(10000); String convertToString = String.valueOf(randomNumber); String sequence = String.valueOf(c); latestEqn = text.replaceAll(sequence,convertString); } TextField1.setText(latestEqn):
根据上面的代码,我的预期结果是:
Initial : a*b Result : 100* 200
但实际结果给了我以下结果:
Initial : a*b Result : a*b
我怀疑出现了什么问题,因为编译器没有显示任何错误.
这是因为您latestEqn
从先前的循环迭代中丢弃.以下是如何解决它:
String latestEqn = text; for(c='a'; c<='z';c++) { int randomNumber = Generator.nextInt(10000); String convertToString = String.valueOf(randomNumber); String sequence = String.valueOf(c); latestEqn = latestEqn.replaceAll(sequence,convertString); }
由于您的代码始终从原始文本开始,因此只有text
包含字母时才会看到效果z
.例如,x*z
会产生x*1000
(或一些其他随机数).