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