我试图在Java字符串中单词的特定位置添加前缀和后缀。谁能帮助我,告诉我哪里出问题了?下面是我的代码。
public static void main(String[] args) {
String str = "Hello world. welcome world java.";
String arr[] = str.split("[. ]");
if(str.contains("world")) {
System.out.println("PREFIX_"+str+"_SUFFIX");
}
}
预期输出:
Hello PREFIX_world_SUFFIX. welcome PREFIX_world_SUFFIX java
输出获得:
PREFIX_Hello world. welcome world java_SUFFIX
答案 0 :(得分:4)
String replaced = str.replaceAll("world", "PREFIX_world_SUFFIX");
System.out.println(replaced);
答案 1 :(得分:4)
您的代码是错误的,因为在调用split()函数时未更改str
变量。
另外,根据我的收集,您还想为包含“ world”的单词添加前缀和后缀。
就像您的字符串是这样的:Hello worldJava! welcome to java world
一样,您想要显示这样的事情:Hello PREFIX_worldJava_SUFFIX! welcome to java PREFIX_world_SUFFIX
。 (请注意,以前的答案将无法进行这种替换)。
String str = "Hello world. welcome world java.";
String[] wordArr = str.split("[. ]");
Set<String> words = new HashSet<>(Arrays.asList(wordArr));
for (String w: words) {
if(w.toLowerCase().contains("world")){
str = str.replace(w, "PREFIX_"+ w +"_SUFFIX");
}
}
System.out.println(str);
请注意,我正在使用java Set来解析输入字符串中的唯一单词,然后用添加的前缀/后缀替换原始字符串中的单词。
答案 2 :(得分:2)
只需执行以下操作即可:
public class Example {
public static void main(String[] args){
String str = "Hello world. welcome world java.";
System.out.println(str.replace("world", "PREFIX_world_SUFFIX"));
}
}
输出:
Hello PREFIX_world_SUFFIX. welcome PREFIX_world_SUFFIX java.
答案 3 :(得分:1)
您在打印面上做错了。你可以做到的。
String stringToCheck = "world";
if(str.contains(stringToCheck)) {
str = str.replaceAll(stringToCheck , "PREFIX_"+stringToCheck+"_SUFFIX");
System.out.println(str);
}