好的,所以我的程序是从用户接收一个到数据库的 URL,并通过计算平均值并显示它来处理这个数据库。我的算法工作得很好,我遇到的问题是 URL 异常的处理。如果用户输入了无效的 URL,我希望他们再试一次并输入正确的 URL,但是当用户再次输入 URL 时,不会处理来自 URL 的任何数据,并且我在输出中不断收到“NaN”。下面是 try catch 块,因为我相信问题出在那儿,如果可以,请帮忙。
//测试 URL //URL 工资 = new URL(" http://cs.armstrong.edu/liang/data/Salary.txt ");
System.out.println("Enter The URL to the File ");
Scanner UserInput = new Scanner(System.in);
try
{
//Ask The User to Input the URL
URL salary = new URL(UserInput.nextLine());
Scanner Read = new Scanner(salary.openStream());
while(Read.hasNextLine())
{
for(int i = 0; i < Faculty.length; i++)
{
String Firstname = Read.next();
String Lastname = Read.next();
String rank = Read.next();
double Salary = Read.nextDouble();
if(rank.matches("assistant"))
{
Faculty[i] = new AssistantProfessor(Firstname, Lastname, rank, Salary);
allAssistantProff[i] = new AssistantProfessor(Firstname, Lastname, rank, Salary);
AssistantProfessors++;
}
if(rank.matches("associate"))
{
Faculty[i] = new AssociateProfessor(Firstname, Lastname, rank ,Salary);
allAssociateProff[i] = new AssociateProfessor(Firstname, Lastname, rank ,Salary);
AssociateProfessors++;
}
if(rank.matches("full"))
{
Faculty[i] = new FullProfessor(Firstname, Lastname, rank, Salary);
allFullProff[i] = new FullProfessor(Firstname, Lastname, rank, Salary);
FullProfessors++;
}
//System.out.println(Faculty[i]);
//System.out.println(allAssistantProff[i]);
//System.out.println(allAssociateProff[i]);
//System.out.println(allFullProff[i]);
}
}
}
catch(MalformedURLException ex)
{
System.out.println("invalid URL" + " Try Again ");
URL salary = new URL(UserInput.nextLine());
}