【发布时间】:2017-03-25 01:50:48
【问题描述】:
我有一个名为“results.txt”的文件,其中包含以下值:
0118210:1801:XDCS1094:A:4
0118210:1801:XDCS2034:B+:4
0118210:1801:XDCS1043:C:3
0118024:1801:XDCS1094:B:4
0118024:1801:XDCS2094:A:4
我想读取文件,将其设为数组并删除分隔符并根据 GPA 公式进行计算。这是我对它应该如何工作的想法,但我仍然不太确定,因为我是编程新手。我还尝试在新行上显示我的结果,而不是在一行中显示所有内容,如图所示。任何帮助将不胜感激,这是一项任务。
public void run()
{
try{
do{
found=0;
received = in.readLine();
array2=received.split(":");
if(received.equals("QUIT")) break;
switch(received.charAt(0))
{
case 'R':
Register();
break;
case 'L':
login();
break;
case 'V':
View();
break;
}
}while(!received.equals("QUIT"));
}
catch(IOException e)
{
e.printStackTrace();
}
public void View() throws IOException
{
String grade ="";
in3 = new BufferedReader(new FileReader("results.txt"));
while((result = in3.readLine()) !=null)
{
array4=result.split(":");
if((array2[1].equals(array4[0])) && (array2[2].equals(array4[1])))
{
grade += array4[2]+" "+array4[3]+" "+array4[4];
found=1;
}
if(found==0)
out.println("No Records");
}
out.println(grade);
GCPA();
}
public void CGPA() throws IOException{
String grade = "", cgpa = "";
int IntValue = 0, IntCH = 0, IntCGPA = 0, IntArray = 0;
if(array4[3] == "A") {
IntArray = Integer.parseInt(array4[3]);
IntValue = IntArray * 4;
} else if(array4[3] == "B") {
IntArray = Integer.parseInt(array4[3]);
IntValue = IntArray * 3;
}
IntCH += IntArray;
IntCGPA = IntValue/IntCH;
out.println(IntCGPA);
}
首先,我如何将结果变成一个新行而不是所有内容都在一行中?
添加\n 不起作用,当我运行我的程序时,它不会显示我的IntCGPA 并显示此错误
Exception in thread "Thread-0" java.lang.ArithmeticException: / by zero
at MultiClientHandler1.CGPA(MultiClientHandler1.java:95)
at MultiClientHandler1.View(MultiClientHandler1.java:81)
at MultiClientHandler1.run(MultiClientHandler1.java:116)
【问题讨论】:
-
那么你的问题到底是什么?
-
好的..首先我如何将结果放入一个新行而不是一行中的所有内容,因为 \n 不起作用,当我运行我的程序时它不显示我的 IntCGPA
-
您的异常清楚地显示您在第 95 行除以零。您可以自己轻松修复