我正在尝试从文件中提取数据并计算人员收入的总和。这就是文件的确切内容:
Mark
20
Mike
25
Mary
50
Mink
5
可能必须看起来像这样:
WHO TOTAL1 TOTAL2 TOTAL3
Mark - - -
Mike - - -
Mary - - -
Mink - - -
Combined total for Total 3:
Average for Total 3:
“ - ”行是程序计算数据时显示的位置。 如果第一个总数> 10,那么总数乘以10.第二个和第三个相同但分别乘以20和30。如何从文件中获取数据并将其计算为上面显示的格式?我通过1次计算写出了大部分代码来测试它,但它似乎没有正常工作。我在这行代码上收到几条错误消息: 错误:非法开始表达 public static void calc(double totalOne) 这是代码:
import java.util.Scanner;
import java.io.*;
public class Income
{
public static void main(String[] args) throws IOException
{
Scanner keyboard = new Scanner(System.in);
int i = 0;
String name = keyboard.nextLine();
File file = new File("Income.txt");
Scanner input = new Scanner(file);
System.out.println();
System.out.println("WHO TOTAL1 TOTAL2 TOTAL3");
while (input.hasNext())
{
String name = input.nextLine();
i++;
System.out.println(name);
double totalOne;
calc(totalOne);
}
input.close();
public static void calc(double totalOne)
{
int money;
if(input.hasNext())
{
input.nextLine();
int money = input.nextLine;
}
if (money > 10)
System.out.println(money*10);
}
}
}
先谢谢!
答案 0 :(得分:0)
您正在尝试在方法内声明方法。从public static void main()方法中取出public static void calc(){...}块。
答案 1 :(得分:0)
假设输入文件中的个体数量是已知的 - 而不是逐行方法,请考虑将输入文件并将其操作为名为income[][]
的整数2D数组和字符串数组names[]
。
names[] = [Mark,Mike,Mary,Mink];
income[][] = { {20,0,0}
{25,0,0}
{50,0,0}
{5,0,0}
假设您正确设置它们,它们将具有匹配的索引ie。 name[i]
对应income[i][]
中的行。使用此方法,您可以遍历各个阵列,在单个行上打印出正确的信息。
至于计算,可以使用传递2D数组的方法完成这些操作,并按照以下方式执行:
while(iterating through income[i][j]){
if(j = 1){
income[i][j] = income[i][(income[i][0])*20];
};
if(j = 2){
income[i][j] = income[i][(income[i][0])*30];
};
完成后,您将返回已完成所有计算的新更新的2D数组。打印到控制台或写入文件很容易
//using another loop to iterate through the arrays
System.out.println(names[i]+" "+income[i][0]+" "+income[i][1]+" "+income[i][2]);