Как добавить префикс и суффикс к конкретному вхождению слова в строке? - PullRequest
1 голос
/ 03 августа 2020

Я пытаюсь добавить префикс и суффикс к конкретному вхождению слова в строке в 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 ]

4 голосов
/ 03 августа 2020

Ваш код неверен, поскольку вы не меняете переменную str при вызове функции split (). Кроме того, насколько я понимаю, вы также хотите добавить префикс и суффикс к тем словам, которые содержат слово «мир». Например, если ваша строка выглядит примерно так: 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 для анализа уникальных слов из входной строки, а затем их замены в исходной строке с добавленным префиксом / суффиксом.

4 голосов
/ 03 августа 2020
String replaced = str.replaceAll("world", "PREFIX_world_SUFFIX");
System.out.println(replaced);
2 голосов
/ 03 августа 2020

Просто сделайте это просто:

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.
1 голос
/ 03 августа 2020

Вы неправильно делаете на стороне печати. Вы можете это сделать.

String stringToCheck = "world";

if(str.contains(stringToCheck)) {
 str = str.replaceAll(stringToCheck , "PREFIX_"+stringToCheck+"_SUFFIX");
 System.out.println(str);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...