Java 在数组中替换

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/3250405/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-13 17:47:28  来源:igfitidea点击:

Replace in Array

java

提问by Mac135

im trying make one replace in string from a array but this dont work

我正在尝试从数组中替换字符串,但这不起作用

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

and with this way work?

并以这种方式工作?

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

why dont work with array, how i can use use a replace in array[]

为什么不使用数组,我如何使用数组中的替换[]

Now i have other problem, i want use various replaces in original string, how i can mahe this????

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

采纳答案by Andreas Dolk

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

This works as expected. Double check your code if you follow a similiar pattern.

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



You may have expected, that dna[i].replace('T', 'C');changes the content of the cell dna[i]directly. This is not the case, the String will not be changed, replacewill return a new String where the char has been replaced. It's necessary to assign the result of the replaceoperation to a variable.

您可能已经预料到,这dna[i].replace('T', 'C');dna[i]直接更改单元格的内容。情况并非如此,字符串不会改变,replace将返回一个新的字符串,其中字符已被替换。有必要将replace操作的结果分配给一个变量。



To answer your last comment:

要回答您的最后一条评论:

Strings are immutable - you can't change a single char inside a String object. All operations on Strings (substring, replace, '+', ...) always create new Strings.

字符串是不可变的 - 您不能更改 String 对象内的单个字符。对字符串的所有操作(子字符串、替换、'+'、...)总是创建新的字符串。

A way to make more than one replace is like this:

一种进行多次替换的方法是这样的:

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

回答by jjnguy

An array is just a data structure that holds data. It doesn't support any operations on that data. You need to write the algorithms to work on the data yourself.

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

A Stringis basically a char array with some methods that you can call on that. The replace()method is one of them.

AString基本上是一个 char 数组,其中包含一些您可以调用的方法。该replace()方法是其中之一。

The method you want would look something like this:

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

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;
        }
    }
}

You would then call it like so:

然后你可以这样称呼它:

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

That would replace the first instance of Tin the array with a C.

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