#java #r.java-file
Вопрос:
У меня есть файл с этим содержимым:
1.10.100.1 1000.0
1.10.100.2 2000.0
1.10.100.3 2000.0
1.10.500.4 1000.0
я написал функцию, которая находит конкретную строку в файле:
public double searchInBalance(String depositNumber) {
try {
String[] words = null;
FileReader fileReader = new FileReader(file);
BufferedReader bufferedReader = new BufferedReader(fileReader);
String string;
String inputBalanceToFind = depositNumber;
while ((string = bufferedReader.readLine()) != null) {
words = string.split(" ");
for (String word : words) {
if (word.equals(inputBalanceToFind)) {
System.out.println("string :" string);
}
}
}
fileReader.close();
} catch (Exception e) {
e.printStackTrace();
System.out.println("Error in searchInBalance");
}
return 1;
}
я хочу создать функцию, которая при нахождении левого значения файла возвращает правильное значение(двойное значение) обратно, но понятия не имею, как это сделать, пожалуйста, помогите мне
Комментарии:
1. Просто сохраните значения, которые вы прочитали, в хэш-карте с ключом в левом столбце и значением справа.
Ответ №1:
public double searchInBalance(String depositNumber){
try {
String[] words = null;
FileReader fileReader = new FileReader(file);
BufferedReader bufferedReader = new BufferedReader(fileReader);
String string;
String inputBalanceToFind = depositNumber;
while ((string = bufferedReader.readLine()) != null) {
words = string.split(" ");
for (int i = 1; i < words.length; i = 2) {
if (words[i].equals(inputBalanceToFind)) {
System.out.println(words[i] " - " words[i - 1]);
}
}
}
fileReader.close();
} catch (Exception e) {
e.printStackTrace();
System.out.println("Error in searchInBalance");
}
}
Просто сделайте цикл for со счетчиком для работы с индексами массива. Но это не очень хороший стиль программирования, и вы должны попытаться улучшить свое решение 😀