好吧,我已经接近了一点,但仍然遇到一些错误。 Netbeans 告诉我我的 LoanArray 未初始化并且找不到 readLine() 方法?另外,我尝试在finally block 中关闭列出了错误。 这是我的代码-
// generate 2 constants for use in the array lookup values.
final int YEARS = 0;
final int INTEREST = 1;
//create the array
double loanArray[][];
try{
FileReader readTerms = new FileReader ("MortgageTerms.txt");
BufferedReader loanTerms = new BufferedReader(readTerms);
java.util.Scanner termScan = new Scanner(loanTerms);
while(termScan.hasNext()){
for(int i=0;termScan != null; i++)
loanArray [i][YEARS]= Integer.parseInt (termScan.readLine());
loanArray [i][INTEREST] = Double.parseDouble (termScan.readLine());
}
} catch (FileNotFoundException e){
javax.swing.JOptionPane.showMessageDialog(null,
"Error, File not found");
return;
} catch (IOException ex){
javax.swing.JOptionPane.showMessageDialog(null, "There was an IO error");
return;
}
finally{
if (termScan!=null){
termScan.close();
}
}
最佳答案
你为什么不相信编译器呢?你需要这样的东西:
double loanArray[][] = new double[MAX_TERMS][2];
并且 termScan
是在 try block 内声明的,因此当您到达finally 时它已经超出了范围。在 try 之外声明它。
对我来说,这看起来是一种糟糕的抽象,无法充分利用对象。
利息应该是双倍的;年应该是一个整数。两者都应该封装到Terms或Loan对象中并存储在List中。你的 double 矩阵是一个糟糕的设计选择。
关于java - 如何在循环中解析来自扫描仪对象的 Double 值并将其传递给新数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3079855/