如何从文件交替变量中读取值?

时间:2014-01-05 14:39:30

标签: java arrays file int

如何使用Scanner读取.txt,第一个值转到int x,第二个值转到int y,第三个转到int x继续... 并做验证。 我写了这样的代码,但它没有读取所有值:

Scanner kb = new Scanner(f);
while(kb.hasNextInt())
    {
        k[n] = new Medida();
        tmp = kb.nextInt();
        if(tmp >= 0 && tmp <= 100)
        k[n].hum = tmp;
        tmp1 = kb.nextInt();
        if(tmp1 >= -10 && tmp1 <= 40)
        k[n].temp = tmp1;
        n++;
        if(n == 31) break;                                                                                           
    }

我的档案是这样的:

  • 12 - &gt; int x
  • 1 - &gt; int y
  • 12 - &gt; int x
  • 3 - &gt; int y
  • 13 - &gt; int x
  • 14 - &gt; int y
  • 11 - &gt; int x

1 个答案:

答案 0 :(得分:1)

将文件转换为List(Java 7):

List<String> lines = Files.readAllLines(Paths.get("file.txt"), StandardCharsets.UTF_8);

之后,在列表中循环运行并按->

分割
    final String SPLIT = "-> int ";

    List<String> lines = Files.readAllLines(Paths.get("C:\\test.txt"), StandardCharsets.UTF_8);

    int x = 0,y = 0;

    int temp;

    for(int i=0; i<lines.size(); i++){

        temp = Integer.parseInt(lines.get(i).split(SPLIT)[0].trim());
        // in case id line contains integer only:
        // temp = Integer.parseInt(lines.get(i).trim());

        if(i % 2 == 0){
            x += temp;
        }
        else{
            y += temp;
        }
    }

    System.out.println(x);
    System.out.println(y);