替换为数组

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

dna[i].replace('T', 'C'); 

用这种方式工作?

 "ATCTA".replace('T', 'C'); 

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

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

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

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


您可能已经预料到, 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'); 

数组只是一个保存数据的数据结构。 它不支持对该数据的任何操作。 您需要编写算法来自行处理数据。

String基本上是一个char数组,有一些方法可以调用它。 replace()方法就是其中之一。

你想要的方法看起来像这样:

 static void replace(char[] arr, char find, char replace) { for (int i = 0; i < arr.length; i++) { if (arr[i] == find) { arr[i] = replace; return; } } } 

然后你会这样称呼它:

 replace(dna, 'T', 'C'); 

这将用C替换数组中的第一个T实例。