Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用split并从文件中的一行读取int和string,但它不打印任何内容_Java_File_Java.util.scanner - Fatal编程技术网

Java 使用split并从文件中的一行读取int和string,但它不打印任何内容

Java 使用split并从文件中的一行读取int和string,但它不打印任何内容,java,file,java.util.scanner,Java,File,Java.util.scanner,问题是从一个由一个空格分隔的文本文件中读取字符串和int。(例如“3.3插孔”)。我也尝试过使用split方法,但它似乎没有打印任何内容。只是个初学者 package com.company; import java.io.File; import java.io.FileNotFoundException; import java.util.Scanner; public class Main { public static void main(String[] args) t

问题是从一个由一个空格分隔的文本文件中读取字符串和int。(例如“3.3插孔”)。我也尝试过使用split方法,但它似乎没有打印任何内容。只是个初学者

package com.company;

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;


public class Main {

    public static void main(String[] args) throws FileNotFoundException {

        Scanner reader = new Scanner(new File("data.txt"));

        double[] grades = new double[6];
        String[] names = new String[6];
        String s = reader.nextLine();
        String[] split = s.split(" ");

        int sum= 0;
        int counter= 0;
        int avg= 0;
            while(reader.hasNext()) {
                for (int i = 0; i <= grades.length; i++) {
                    grades[i] = Double.valueOf(split[0]);
                    names[i]= split[1];
                    sum+=grades[i];
                    counter++;
                    avg= sum/counter;

                }
                System.out.println(avg);
            }

    }
}
package.com公司;
导入java.io.File;
导入java.io.FileNotFoundException;
导入java.util.Scanner;
公共班机{
公共静态void main(字符串[]args)引发FileNotFoundException{
扫描仪阅读器=新扫描仪(新文件(“data.txt”);
双[]等级=新双[6];
字符串[]名称=新字符串[6];
字符串s=reader.nextLine();
字符串[]split=s.split(“”);
整数和=0;
int计数器=0;
int平均值=0;
while(reader.hasNext()){

对于(int i=0;i会发生错误,因为您正在验证“i”您的方法是否颠倒了!为什么需要
reader.hasNext()
读取整行后?您只需读取该行->拆分它->然后检查数组中每个索引处的每个值。此外,文件中文本的格式是什么,每行是否随机包含数字和字符串(即没有特定顺序)?正如Yahya所指出的,由于您已经阅读了line@Yahya就像一行中的“4.4鲍勃”,一个空格。我是如此愚蠢的家伙,哈哈。初学者的错误视觉是很有启发性的。但是试着对人更加礼貌,包括你自己。;)谢谢,但是当我运行这段代码时,它只打印其中一个值,而不是文件中的全部6个值。你能解释一下你的代码吗?所以,也许我可以帮你。如果我使用print语句打印一个数字,它只打印其中一个值。我只想能够在单独的数组中存储int和string
Scanner reader = new Scanner(new File("./data.txt"));

    double[] grades = new double[6];
    String[] names = new String[6];
    String s = reader.nextLine();
    String[] split = s.split(" ");

    int sum= 0;
    int counter= 0;
    int avg= 0;
        for (int i = 0; i < grades.length; i++) {
            grades[i] = Double.valueOf(split[0]);
            names[i]= split[1];
            sum+=grades[i];
            counter++;
            avg= sum/counter;            
            System.out.println(avg);
        }
Scanner reader = new Scanner(new File("./data.txt"));

    double[] grades = new double[6];
    String[] names = new String[6];        
    String[] split;

    int sum= 0;
    int counter= 0;
    int avg= 0;
        do {
            split = reader.nextLine().split(" ");
            for (int i = 0; i < grades.length; i++) {
                grades[i] = Double.valueOf(split[0]);
                names[i]= split[1];
                sum+=grades[i];
                counter++;
                avg= sum/counter;            
                System.out.println(avg);
            }               
        } while(reader.hasNext());