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