问题
I want to replace, say String oldString
with String newString
in an Array along the lines of:
for (int i = 0; i < text.length; i++) {
if (text[i].equals(oldString)) {
text[i] = text[i].replace(oldString, newString);
}
}
How would one go about this in Java?
回答1:
You don't need to use replace()
in this case, since you are already checking that text[i]
is equal to oldString
, which means you are replacing the entire String
, which means assignment is sufficient:
for (int i = 0; i < text.length; i++) {
if (text[i].equals(oldString)) {
text[i] = newString;
}
}
If, on the other hand, you wanted to replace a sub-string of text[i]
which is equal to oldString
to newString
, you could write:
for (int i = 0; i < text.length; i++) {
text[i] = text[i].replace(oldString,newString);
}
回答2:
You can use IntStream instead. Code might look something like this:
String[] text = "Lorem oldString dolor sit amet".split("\\s+");
IntStream.range(0, text.length).forEach(i ->
text[i] = text[i].replace("oldString", "newString"));
System.out.println(Arrays.toString(text));
// [Lorem, newString, dolor, sit, amet]
See also: Replace certain string in array of strings
来源:https://stackoverflow.com/questions/65378006/how-to-replace-a-whole-string-with-another-in-an-array-in-java