替换功能不符合预期结果

0 java replace

以下是我的代码:

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):  
Run Code Online (Sandbox Code Playgroud)

根据上面的代码,我的预期结果是:

Initial : a*b  
Result  : 100* 200 
Run Code Online (Sandbox Code Playgroud)

但实际结果给了我以下结果:

Initial : a*b  
Result  : a*b
Run Code Online (Sandbox Code Playgroud)

我怀疑出现了什么问题,因为编译器没有显示任何错误.

das*_*ght 7

这是因为您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);  
} 
Run Code Online (Sandbox Code Playgroud)

由于您的代码始终从原始文本开始,因此只有text包含字母时才会看到效果z.例如,x*z会产生x*1000(或一些其他随机数).