我正在尝试从数组中替换字符串中的一个,但这不起作用
dna[i].replace('T', 'C');
用这种方式工作吗?
"ATCTA".replace('T', 'C');
为什么不使用数组,如何在array[]中使用替换
现在我还有其他的问题,我想在原来的字符串中使用各种替换,我该怎么做呢?
发布于 2010-07-14 20:54:55
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]
的内容。事实并非如此,字符串不会改变,replace
将返回一个新的字符串,其中的字符已被替换。有必要将replace
操作的结果赋给一个变量。
回答你的最后一条评论:
字符串是不可变的--你不能改变字符串对象中的单个字符。字符串上的所有操作(子字符串,替换,'+',...)始终创建新字符串。
进行多个替换的方法如下所示:
dna[i] = dna[i].replace('T', 'C').replace('A', 'S');
发布于 2010-07-14 20:53:47
数组只是一个保存数据的数据结构。它不支持对该数据的任何操作。您需要自己编写处理数据的算法。
一个String
基本上是一个字符数组,你可以在其中调用一些方法。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
实例。
https://stackoverflow.com/questions/3250405
复制相似问题