знаю что можно, но как?
по-моему запись информации в строку это очень не эффективно. Радует только что код маленький и рабочий
/*
try (BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedReader buffer = new BufferedReader(new FileReader(br.readLine())))
{
String str;
while (buffer.ready()) {
str = buffer.readLine();
String[] spl = str.split("\\n");
for (String s : spl) {
if (s.startsWith(args[0]+" "))
System.out.println(s);
}
}
} catch (IOException ex) {
System.out.println("WTF? Нет такого id!!!");
}
/*
ak
22 уровень
как улучшить чтоб считывало не в строку?
Решен
Комментарии (5)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
AlekseiSoftware Engineer в CiscoExpert
20 июля 2020, 18:30
Можно просто убрать for и уже будет эффективнее:
И конкретно в этой задаче есть условие, что "Информация по каждому товару хранится в отдельной строке.". То есть, логично считывать именно строки.
0
ak
20 июля 2020, 20:06
если убрать разбитие строки str на массив строк, то как найдем наше id?
в моем варианте решения задачи, я записываю весь файл в строку, затем разбиваю эту строку и каждый полученный элемннт заношу в массив. И уже в массиве ищу строку с нужным префиксом
0
ak
21 июля 2020, 04:04
проверил такой вариант.
тоже работает. но как такое возможно?
т.е String str = buffer.readLine() считывает весь файл в строку, а потом в этой строке находит отдельный кусок кода.
Текст в файле:
1 abra 111
2 kadabra 222
3 wtf? 333
Если сделать так: System.out.print(str);
то на консоль выведет весь текст в одну строку:
1 abra 1112 kadabra 2223 wtf? 333
Как так то?
0
AlekseiSoftware Engineer в CiscoExpert
21 июля 2020, 08:18
Нет, этот вариант так же считывает построчно. А выводит результат в одну строку у тебя из-за System.out.print(str), при использовании System.out.println() результат будет выведен построчно.
+1
ak
22 июля 2020, 10:27
да)) точно! спасибо!
0