如何在字符串中的特定单词出现时添加前缀和后缀?

时间:2020-08-03 05:53:37

标签: java string

我试图在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

4 个答案:

答案 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);
}