2011-11-06 88 views
0

我正在为我的Comp Sci类编写一个银行帐户程序,并且需要搜索用户输入的帐号(这是一个int)的.txt文件,然后拔出下一个排是平衡。即用户输入账号#12345679,我需要取出它的余额。下面是TXT文件搜索文本文件以获取特定的双精度

12345678 
133.87 
12345679 
500.00 
12345670 
123.00 

到目前为止,我有一个例子,我知道我将不得不把是否statment

while (accountTries < 3) 
     { 
      System.out.println("Please enter your 8 digit account number"); 
      accountNumber = console.next(); 
      accountLength = accountNumber.length(); 
      while (in.hasNextInt()) 
      { 
       line = in.hasNextInt(); 
       if (accountLength == 8 && line == accountNumber ) 
        { 
        accountTries = 3;   
        } 
      } 
      System.out.println("INVALID ACCOUNT NUMBER."); 
      accountTries++; 
      } 
     }//End of while loop 
+4

到目前为止您还有什么,和/或您的具体问题是什么? – MeBigFatGuy

回答

0

不知道什么如何获得在平衡你正在努力......但这看起来不正确:

line = in.hasNextInt(); 

你不应该在这里得到的价值吗?你只是在测试,看看有没有什么东西,就像你在“while”条件下做的那样。

+0

为什么我写这行是为了账号,然后下一行就是余额。所以我不确定如何从下一行拉出一个双。我很可能会因此而复杂化。 –

0
outer: while (accountTries < 3) 
{ 
    System.out.println("Please enter your 8 digit account number"); 
    accountNumber = console.next(); 
    accountLength = accountNumber.length(); 
    while (in.hasNextLine()) 
    { 
     line = in.nextLine(); 
     result = in.nextLine(); 
     if (accountLength == 8 && line.equals(accountNumber)) 
      { 
      accountTries = 3;   
      break outer; 
      } 
    } 

    System.out.println("INVALID ACCOUNT NUMBER."); 
    accountTries++; 
    } 
}//End of while loop 

我用一个带标签的走出外而(你可以做同样的if语句和完成标志,但我懒做,在这里)

0

你可以简单地将文件读取到字符串并通过行分隔符(\ n或\ n \ r)拆分。 例如:

String fileContent = //read String from file; 
String[] elements = fileContent .split("\n"); 

for(int i =0; i< elements.length; i++){ 

if(i%2 ==0){ 
    //get account number 
}else{ 
    //get balance 
} 

} 
+0

不幸的是,我不被允许使用数组....我的教授是一个完全婊子,并会使我失败。我尝试在早期任务上执行递归方法,她因为我们还没有学到它而失败了...... –

+0

@ Pnchappy92在这种情况下,您可以在读取文件时使用BufferedReader并调用bufferedReader.readLine()并在计算后保持计数器增量每次读数,如果计数器%2 = 0? //获取帐户,否则获得平衡 –