【问题标题】:Searching for last value in list in regards to id搜索列表中关于 id 的最后一个值
【发布时间】:2012-10-19 00:46:12
【问题描述】:

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

我将如何工作,以便它找到文件中与 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;

}

【问题讨论】:

  • 文件中是否有其他ID,或者总是相同的ID?

标签: java file search


【解决方案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;
}

【讨论】:

    猜你喜欢
    • 2014-07-07
    • 2011-03-15
    • 2014-12-27
    • 1970-01-01
    • 2015-05-10
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多