1

我了解如何在 txt 文件中搜索一个值(或在这种情况下为一个 id),但通常这会返回它找到的第一个选项。

我将如何工作,以便它找到文件中与 id 相关的最后一个值并使用该值?(本例中,卡号 17 的余额为 813。

txt 文件示例

17,721.0
17,744.0
17,767.0
17,790.0
17,813.0

我当前的搜索代码。

public static double readBalance(int cardNumber)
{
  double balance;  
  String line;

  try {
        File CbFile = new File("cardBalance.txt");
        BufferedReader br = new BufferedReader(
                            new InputStreamReader(
                            new FileInputStream(CbFile)));

        while((line = br.readLine()) != null) {
            if(line.indexOf(cardNumber) != -1)
                break;
        }
        String[] s = line.split("\\,");

        balance = Double.parseDouble(s[1]);
        System.out.println("Blalance of " + cardNumber +
                           " is: " + s[1]);
        br.close();
    } catch(IOException e) {
        System.out.println("read error: " + e.getMessage());
    }


  return  balance;

}

4

1 回答 1

1

如果您可以一次将整个文件读入内存,lastIndexOf(String)将为您提供最后一次出现的字符串。

如果没有,你会想要类似的东西:

String cardInfo;
String cardNumberString = cardNumber + ","; // makes sure that you don't get your
                                            // id in the middle of a value
while((line = br.readLine()) != null) {
    if(line.indexOf(cardNumberString) != -1)
        cardInfo = line;
}
于 2012-10-19T00:52:53.873 回答