Java 我在尝试这个问题时输出错误,
程序应从文本文件中读取匹配数据。文件中的每一行都包含特定匹配的数据。文件中每行的格式如下:Java 我在尝试这个问题时输出错误,,java,Java,程序应从文本文件中读取匹配数据。文件中的每一行都包含特定匹配的数据。文件中每行的格式如下: 主队\名称:客场\名称:主队\得分:客场\得分 请注意冒号字符(:)如何用于分隔输入的不同部分(字段分隔符) 以下是文件中典型数据行的示例 Arsenal : Spurs : 2 : 1 Everton : Liverpool : 1 : 1 Huddersfield : Chelsea: 2 : 1 程序应提示用户输入匹配数据文件的名称,然后读取、存储和处理文件中存储的每行匹配数据,并以指定格式将数据
主队\名称:客场\名称:主队\得分:客场\得分
请注意冒号字符(:)如何用于分隔输入的不同部分(字段分隔符)
以下是文件中典型数据行的示例
Arsenal : Spurs : 2 : 1
Everton : Liverpool : 1 : 1
Huddersfield : Chelsea: 2 : 1
程序应提示用户输入匹配数据文件的名称,然后读取、存储和处理文件中存储的每行匹配数据,并以指定格式将数据输出到控制台(即,这不仅仅是读取和显示文件中存储的原始数据)
匹配数据必须以以下格式显示
Home team Score Away team Score
========= ===== ========= ======
Arsenal 2 Spurs 1
Everton 1 Liverpool 1
Huddersfield 2 Chelsea 1
我已经完成了代码,但输出结果并没有如问题中所示,直到:
import java.io.FileNotFoundException;
import java.util.Scanner;
import java.io.File;
public class FootallResultsGenerator {
public static void main(String[] args) throws FileNotFoundException {
// TODO Auto-generated method stub
String[] splitarray=new String[4];
String filename;
String line;
String hometeam;
String homescore;
String awayteam;
String awayscore;
Scanner obj=new Scanner(System.in);
System.out.println("Enter the name of the file");
filename=obj.nextLine();
Scanner filereader=null;
try {
File fileobject=new File(filename);
filereader=new Scanner(fileobject);
System.out.println("Home team\t"+"Score\t"+"Away team\t"+"Score");
System.out.println("==========\t"+"======\t"+"=========\t"+"======");
while(filereader.hasNext())
{
line=filereader.nextLine();
splitarray=line.split(":");
if(splitarray.length==4) {
hometeam=splitarray[0];
homescore=splitarray[2];
awayteam=splitarray[1];
awayscore=splitarray[3];
System.out.println(hometeam+"\t"+homescore+"\t"+awayteam+"\t"+awayscore);
}
}
}
catch(FileNotFoundException e)
{
System.out.println("Error:File Not Found.");
}
}
}
它应该显示:
Home team Score Away team Score
========= ===== ========= ======
Manchester United 2 Spurs 1
Everton 1 Liverpool 1
Huddersfield 2 Chelsea 1
而是显示以下内容:
Home team Score Away team Score
========= ===== ========= ======
Manchester United 2 Spurs 1
Everton 1 Everton 1
Huddersfield 2 Chelsea 1
您可以使用以下格式:
System.out.printf(" %-13s %-10s%-15s%-5s","Home team","Score","Away team","Score\n");
System.out.println("=============== ===== ========= =====");
System.out.printf("%-17s %-2s%15s %9s",hometeam,homescore,awayteam,awayscore);
输出:
Home team Score Away team Score
========= ===== ========= ======
Manchester United 2 Spurs 1
请务必让我知道这是否是您正在寻找的内容,如果不是,我将根据您的要求对其进行编辑。您可以使用以下格式:
System.out.printf(" %-13s %-10s%-15s%-5s","Home team","Score","Away team","Score\n");
System.out.println("=============== ===== ========= =====");
System.out.printf("%-17s %-2s%15s %9s",hometeam,homescore,awayteam,awayscore);
输出:
Home team Score Away team Score
========= ===== ========= ======
Manchester United 2 Spurs 1
请务必让我知道这是否是您想要的,如果不是,我将根据您的要求编辑它。查看有关格式化字符串的相关答案。简单打印的主要问题是字符串的长度可变。不能任意假定所有字符串的长度相同,并且一个制表符足以确保在列中对齐。如果您想确保对齐,您需要手动或通过内置Java打印格式填充到特定长度。几天前,我的回答非常类似于@lakshandisanayake,他没有编写任何代码,因为我已经编写了一些代码。问题是一样的,但我的问题是输出,而不是全部内容。请查看有关格式化字符串的相关答案。简单打印的主要问题是字符串的长度可变。不能任意假定所有字符串的长度相同,并且一个制表符足以确保在列中对齐。如果您想确保对齐,您需要手动或通过内置Java打印格式填充到特定长度。几天前,我的回答非常类似于@lakshandisanayake,他没有编写任何代码,因为我已经编写了一些代码。问题是一样的,但我有输出的问题,不是所有的东西,这正是我要找的,这正是我要找的