IM试图使字符串替换从阵列但这不工作在阵列替换
dna[i].replace('T', 'C');
,并用这种方式工作?
"ATCTA".replace('T', 'C');
为什么不与阵列工作,我怎么可以使用使用替换[]数组
现在我有其他的问题,我想在原来的字符串中使用不同的内容替换,我怎么可以马埃这个? ??
IM试图使字符串替换从阵列但这不工作在阵列替换
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]
的内容。情况并非如此,字符串不会被更改,replace
将返回一个新的字符串,其中char已被替换。有必要将replace
操作的结果分配给一个变量。
要回答你的最后的评论:
字符串是不可变的 - 你不能改变一个String对象内的单个字符。字符串上的所有操作(substring,replace,'+',...)总是创建新的字符串。
,使多个替代的方法是这样的:
dna[i] = dna[i].replace('T', 'C').replace('A', 'S');
数组只是一个保存数据的数据结构。它不支持对该数据的任何操作。你需要编写算法来自己处理数据。
A 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
一审阵列。
是'dna'字符串数组或字符数组? – VeeArr 2010-07-14 20:52:57
究竟是什么错误或你的期望 - 从答案中可以看出,我们有两个相互竞争的理论已经;-) – 2010-07-14 21:01:54