替换为数组

Mac*_*135 4 java

即时尝试从数组中替换字符串,但这不起作用

dna[i].replace('T', 'C');
Run Code Online (Sandbox Code Playgroud)

用这种方式工作?

"ATCTA".replace('T', 'C');
Run Code Online (Sandbox Code Playgroud)

为什么不使用数组,我怎么可以使用数组[]中的替换

现在我有其他问题,我想在原始字符串中使用各种替换,我怎么能这个?

And*_*s_D 8

 String dna[] = {"ATCTA"};
 int i = 0;
 dna[i] = dna[i].replace('T', 'C');
 System.out.println(dna[i]);
Run Code Online (Sandbox Code Playgroud)

这按预期工作.如果您遵循类似的模式,请仔细检查您的代码.


您可能已经预料到,dna[i].replace('T', 'C');dna[i]直接更改单元格的内容.情况并非如此,String不会被更改,replace将返回一个新的String,其中char已被替换.有必要将replace操作结果分配给变量.


回答你的上一条评论:

字符串是不可变的 - 您无法更改String对象中的单个字符.字符串上的所有操作(substring,replace,'+',...)总是创建新的字符串.

进行多次替换的方法如下:

dna[i] = dna[i].replace('T', 'C').replace('A', 'S');
Run Code Online (Sandbox Code Playgroud)