Найдите слово и верните определенное значение этого слова

#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 со счетчиком для работы с индексами массива. Но это не очень хороший стиль программирования, и вы должны попытаться улучшить свое решение 😀