Поиск * в строке и замена его через ничего - PullRequest
0 голосов
/ 15 октября 2019

У меня есть домашнее задание, и у меня есть проблема. Я должен искать "*" (звездочку) в строке в Java (я работаю с Eclipse IDE) и должен удалить ее, но каким-то образом мой код не работает.

class Main {

    public static String starOut(String s) {
        for (int i = 0; i < s.length(); i++) {
            if (s.charAt(i) == '*') {
                s.replace(s.charAt(i), '');

            }
        }

        return s;
    }

    public static void main(String[] args) {
        String result = starOut("ab*cd");
        System.out.println(result); // => "ad"
        System.out.println(starOut("ab**cd")); // => "ad"
        System.out.println(starOut("sm*eilly")); // => "silly"
    }
}

Вывод должен бытькак в комментариях в последних строках

1 Ответ

4 голосов
/ 15 октября 2019

Ваш код даже не компилируется, для '' нет пустых char. Я хотел бы использовать StringBuilder, начать с пустого StringBuilder и добавить все char (s), которые не * к нему. Затем верните это как String. Например,

public static String starOut(String s) {
    StringBuilder sb = new StringBuilder();
    for (int i = 0; i < s.length(); i++) {
        char ch = s.charAt(i);
        if (ch != '*') {
            sb.append(ch);
        }
    }
    return sb.toString();
}

В качестве альтернативы, если вы можете использовать встроенные методы;

public static String starOut(String s) {
    return s.replaceAll("\\*", "");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...