Java 如何从文件中只读数据(忽略字符串)?

Java 如何从文件中只读数据(忽略字符串)?,java,Java,在java中,如何从文件中只读取数据,而忽略前面的字符串?伙计们,我做了很多研究,但似乎找不到 下面是一个示例文本文件: number of courses:3 course numbers:219 214 114 arrival Probabilities:0.4 0.6 0.8 min time:2 max time: 4 num cups:1 simulation time:50 number of tas:2 现在你们可以看到,我只想看看数字 我当前的代码如下所示,但由于明显的原因,我

在java中,如何从文件中只读取数据,而忽略前面的字符串?伙计们,我做了很多研究,但似乎找不到

下面是一个示例文本文件:

number of courses:3
course numbers:219 214 114
arrival Probabilities:0.4 0.6 0.8
min time:2
max time: 4
num cups:1
simulation time:50
number of tas:2
现在你们可以看到,我只想看看数字

我当前的代码如下所示,但由于明显的原因,我遇到了一个InputMismatchException(它首先读取字符串而不是整数):

//读取文件
while(input.hasNext()){
//阅读课程数
numCourses=input.nextInt();
courseNumbers=new int[numCourses];//初始化courseNumbers数组的大小。
arrivalProbability=new double[numCourses];//初始化大小arrivalProbability数组。
//阅读课程编号、课程次数。
for(int i=0;i

提前谢谢你的帮助

我会这样做:

int numCourses;
int[] courseNumbers; // I would use a list here, but sticking with your data types for clarity.

while(input.hasNextLine()) {
    String line = input.nextLine();
    String[] lineParts = line.split(":");
    String label = lineParts[0];
    String value = lineParts[1];

    if(label.equals("number of courses")) {
        numCourses = Integer.parseInt(value);
    } else if(label.equals("course numbers")) {
        String[] courseNumberStr = value.split(" ");
        courseNumbers = new int[numCourses]; // you probably want to make sure numCourses was set and courseNumStr has the correct number of elements
        for(int i = 0; i < courseNumberStr.length; i++) {
            courseNumbers[i] = Integer.parseInt(courseNumberStr[i]);
        }
    } else if( /* handle the rest of the inputs */) {
        // etc
    }
  • 读一行
  • 解析该行,确定哪个部分是标签,哪个部分是数据
  • 使用标签确定如何存储数据
不要使用
nextInt
,使用
nextLine
。您需要做的错误检查比我在这里介绍的要多得多,但我会这样做:

int numCourses;
int[] courseNumbers; // I would use a list here, but sticking with your data types for clarity.

while(input.hasNextLine()) {
    String line = input.nextLine();
    String[] lineParts = line.split(":");
    String label = lineParts[0];
    String value = lineParts[1];

    if(label.equals("number of courses")) {
        numCourses = Integer.parseInt(value);
    } else if(label.equals("course numbers")) {
        String[] courseNumberStr = value.split(" ");
        courseNumbers = new int[numCourses]; // you probably want to make sure numCourses was set and courseNumStr has the correct number of elements
        for(int i = 0; i < courseNumberStr.length; i++) {
            courseNumbers[i] = Integer.parseInt(courseNumberStr[i]);
        }
    } else if( /* handle the rest of the inputs */) {
        // etc
    }
int numCourses;
int[]courseNumbers;//我会在这里使用一个列表,但为了清晰起见,请坚持使用您的数据类型。
while(input.hasNextLine()){
String line=input.nextLine();
String[]lineParts=line.split(“:”);
字符串标签=线条零件[0];
字符串值=线部件[1];
if(标签等于(“课程数”)){
numCourses=Integer.parseInt(值);
}else if(标签等于(“课程编号”)){
字符串[]courseNumberStr=value.split(“”);
courseNumbers=new int[numCourses];//您可能希望确保设置了numCourses,并且courseNumStr具有正确的元素数
对于(int i=0;i
您保证每个数字前面都有
(冒号)吗?您必须阅读字符串并丢弃它们。非常感谢!