gpt4 book ai didi

java - 不使用 .replace() 的替换方法

转载 作者:行者123 更新时间:2023-12-01 13:01:41 25 4
gpt4 key购买 nike

好吧,所以我需要创建一个程序,根据字符串替换字符串中的单词,并且还给出替换。 (在本例中将 UK 替换为 United Kingdom)

下面是我的代码,但它不起作用

import java.util.*;
public class replace
{
public static void main(String[]args){
replace("The UK should not be written as uk", "UK", "United Kingdom");
}

static void replace(String input, String seed, String replacement){
String s = "";
ArrayList<String> bla = new ArrayList<String>();
for(int i = 0; i < input.length();i++){
if(input.charAt(i) != ' '){
s = s + input.charAt(i);
}
if(input.charAt(i) == ' ' || i+1 == input.length()){
bla.add(s);
s = "";
}
}

String out = "";
for(int i = 0; i < bla.size(); i++){
if(bla.get(i) == seed){
bla.set(i, replacement);
}
}

for(int i = 0; i < bla.size(); i++){
out = out + bla.get(i)+ " ";
}

System.out.println(out);

}
}

由于某种原因,它没有用替换变量替换我的变量

 String out = "";
for(int i = 0; i < bla.size(); i++){
if(bla.get(i) == seed){
bla.set(i, replacement);
}
}

有什么想法吗?

提前致谢

最佳答案

替换:

if(bla.get(i) == seed)

与:

if(bla.get(i).equals(seed))

第一个比较引用,第二个相等。

您还应该使用 StringBuilder 来连接字符串,并将其保留在循环内:

ArrayList<String> bla = new ArrayList<String>();
for(int i = 0; i < input.length(); i++) {
StringBuilder s = new StringBuilder();

if(input.charAt(i) != ' ')
s.append(input.charAt(i));

if(input.charAt(i) == ' ' || i+1 == input.length())
bla.add(s.toString());
}

使用StringBuilder效率更高。

关于java - 不使用 .replace() 的替换方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23475263/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com