Подскажите, почему код не работает? Предполагалось, что он будет считывать каждую строчку, преобразовывать её в изменяемую строчку, проверять наличие символа, удалять при необходимости, преобразовывать строчку обратно к неизменяемой String и выводить на экран.
Но почему-то при тесте на тестовом файле с компьютера программа не реализует эту логику.
Ошибка в том, что indexOf проверяет первое вхождение символа?
p.s. задачу решила иным способом, хочу понять, в чем ошибка логики этого решения
package com.javarush.task.pro.task15.task1506;
import java.io.IOException;
import java.io.InputStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;
import java.util.Scanner;
/*
Фейсконтроль
*/
// Напиши программу, которая считывает из консоли имя текстового файла,
// далее читает символы из этого файла (используй метод readAllLines(Path) класса Files)
// и выводит на экран все, за исключением точки, запятой и пробела.
public class Solution {
public static void main(String[] args) {
//напишите тут ваш код
try(Scanner scanner = new Scanner(System.in);
) {
List<String> bufferList = Files.readAllLines(Paths.get(scanner.nextLine()));
for (String print: bufferList) {
StringBuilder tempPrint = new StringBuilder(print);
if (print.contains(".")) {
tempPrint.deleteCharAt(tempPrint.indexOf("."));
} else if (print.contains(",")) {
tempPrint.deleteCharAt(tempPrint.indexOf(","));
} else if (print.contains(" ")) {
tempPrint.deleteCharAt(tempPrint.indexOf(" "));
}
print = tempPrint.toString();
System.out.println(print);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}