Программа должна заменить все числа в поступающей строке на 0, но преобразований не происходит. Помогите найти ошибку.
public static void main(String args[]) {
System.out.println(replace(getString()));
}
public static String getString() {
String s = scanner.nextLine();
return s;
}
public static String replace(String s) {
if (s.contains("1")) {
s.replace("1", "0");
}
if (s.contains("2")) {
s.replace("2", "0");
}
if (s.contains("3")) {
s.replace("3", "0");
}
if (s.contains("4")) {
s.replace("4", "0");
}
if (s.contains("5")) {
s.replace("5", "0");
}
if (s.contains("6")) {
s.replace("6", "0");
}
if (s.contains("7")) {
s.replace("7", "0");
}
if (s.contains("8")) {
s.replace("8", "0");
}
if (s.contains("9")) {
s.replace("9", "0");
}
return s;
}
}
Метод String.pelpace не меняет строку, на которой он вызван, он возвращает новую строку. Соответственно Ваш код должен выглядеть как то так
...
s = s.replace("9", "0");
...
Так же посмотрите на метод String.replaceAll, он принимает на вход регулярное выражение, которым можно найти все вхождения за раз:
s = s.replaceAll("[0-9]", "0");
https://ideone.com/dkRGkO
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости