替换为数组

时间:2010-07-14 20:50:32

标签: java

我试图在数组中替换一个字符串,但这不起作用

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

以这种方式工作?

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

为什么不使用数组,如何使用数组[]

中的替换

现在我还有其他问题,我希望在原始字符串中使用各种替换,我怎么能这样呢????

2 个答案:

答案 0 :(得分:8)

 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');

答案 1 :(得分:2)

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

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');

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