В стоке 65 пробовал писать fileContent.concat(scanner.nextLine() + " "); по итогу ничего не получал, выводилось дефолтное значение fileContent(то есть пустая строка). Пробовал дебагать и вроде всё работало исправно, цикл шёл столько раз сколько строк в файле, но строки не складывались, долго бился и попробовал написать += и всё прошло. Concat ведь работает по принципу String.concat(another String), Scanner.nextLine возвращает СТРОКУ. Подскажите пожалуйста в чём может быть проблема? Может сначала стоит объявлять новую newS = scanner.nextLine() и потом делать concat(newS)?
Антон
19 уровень
Объясните пожалуйста почему не работает concat
Решен
Комментарии (4)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Александр Дорофеев Backend Developer в Ай-Теко Expert
19 апреля 2019, 07:46решение
Вот такой вариант будет работать:
fileContent = fileContent.concat(s);
Вот такой будет давать некорректный результат:
fileContent += fileContent.concat(s);
Проблема в том, что этот метод не меняет переменную, он возвращает новую переменную
+2
Александр Дорофеев Backend Developer в Ай-Теко Expert
19 апреля 2019, 07:29
Для того, чтобы понять проблему очень часто достаточно почитать документацию на язык.
Очень рекомендую залезть и посмотреть.
docs.oracle.com
При необходимости использовать переводчик гугл, он достаточно хорошо переводит.
0
Антон
18 апреля 2019, 11:27
Прикреплять код готовой задачи нельзя)))))) Если поймёте, то вот кусок из кода
0
Антон
18 апреля 2019, 11:27
try{
fileReader = new FileReader(fileName);
scanner = new Scanner(fileReader);
while(scanner.hasNext()){
fileContent += (scanner.nextLine() + " ");
}
fileReader.close();
scanner.close();
}
catch(IOException e){
System.out.println(e.getClass().getSimpleName());
System.out.println(e.getStackTrace());
0