Java 如何从txt文件行读取并打印字符串和整数数组
我正在从一个文本文件中读取一个特定的行,该行由用户使用Java 如何从txt文件行读取并打印字符串和整数数组,java,arrays,string,int,readfile,Java,Arrays,String,Int,Readfile,我正在从一个文本文件中读取一个特定的行,该行由用户使用if(nameLine.contains(inputFileName))输入定义{我正试图从那一行打印一个名称数组和数字数组。有人能帮我怎么做吗?我必须创建两种不同的方法吗?或者我可以主要完成所有操作吗?我只知道如何在一个代码中使用一个数组,同时使用循环,但我不确定如何将它们组合起来。谢谢或者你的帮助 我的代码还没有完成,但到目前为止看起来是这样的 虽然这不是最好的解决方案,但这里有一个潜在的解决方案,您可以在此基础上构建/整理 基本上,读入
if(nameLine.contains(inputFileName))输入定义{
我正试图从那一行打印一个名称数组和数字数组。有人能帮我怎么做吗?我必须创建两种不同的方法吗?或者我可以主要完成所有操作吗?我只知道如何在一个代码中使用一个数组
,同时使用循环
,但我不确定如何将它们组合起来。谢谢或者你的帮助
我的代码还没有完成,但到目前为止看起来是这样的
虽然这不是最好的解决方案,但这里有一个潜在的解决方案,您可以在此基础上构建/整理 基本上,读入文件,循环每一行,如果该行包含用户输入,则拆分该行上的每个
字符串,检查是文本还是数字,并添加到相关数组中
public static void main(String[] args) throws FileNotFoundException {
List<String> nameArr = new ArrayList<>();
List<Double> intArr = new ArrayList<>();
System.out.print("Enter the State name: ");
Scanner in = new Scanner(System.in);
String inputFileName = in.next();
Scanner sc = new Scanner(new File("pplnames17.txt"));
while (sc.hasNextLine()) {
String nameLine = sc.nextLine();
if (nameLine.contains(inputFileName)) {
String[] inputs = nameLine.split(" ");
for (String input : inputs) {
if (isNumeric(input)) {
intArr.add(Double.parseDouble(input));
} else {
nameArr.add(input);
}
}
}
}
if (!nameArr.isEmpty()) {
System.out.println(nameArr);
} else {
System.out.println("No names found");
}
if (!intArr.isEmpty()) {
System.out.println(intArr);
} else {
System.out.println("No numbers found");
}
}
public static boolean isNumeric(String str) {
try {
double d = Double.parseDouble(str);
} catch (NumberFormatException e) {
return false;
}
return true;
}
publicstaticvoidmain(字符串[]args)抛出FileNotFoundException{
List nameArr=new ArrayList();
List intArr=new ArrayList();
System.out.print(“输入州名称:”);
扫描仪输入=新扫描仪(系统输入);
字符串inputFileName=in.next();
Scanner sc=新扫描仪(新文件(“pplnames17.txt”);
while(sc.hasNextLine()){
字符串nameLine=sc.nextLine();
if(nameLine.contains(inputFileName)){
String[]inputs=nameLine.split(“”);
for(字符串输入:输入){
如果(是数字(输入)){
intArr.add(Double.parseDouble(input));
}否则{
nameArr.add(输入);
}
}
}
}
如果(!nameArr.isEmpty()){
System.out.println(nameArr);
}否则{
System.out.println(“未找到名称”);
}
如果(!intar.isEmpty()){
系统输出打印项次(intArr);
}否则{
System.out.println(“未找到编号”);
}
}
公共静态布尔值isNumeric(字符串str){
试一试{
double d=double.parseDouble(str);
}捕获(数字格式){
返回false;
}
返回true;
}
我测试了它,我的文本文件如下:
abc def ghi 12 55 jkl mno pqr
乔·杰克·玛丽12詹姆斯4
保罗·吉姆·金·鲍勃45岁
比尔·余将给保罗打电话455
mary
的用户输入给出了以下输出:
[乔、杰克、玛丽、詹姆斯]
[1.0,2.0,4.0]
我对这个问题投了否决票,因为“a@***类型的错误”不是一个有用的问题陈述。请在你的问题中包含确切的错误消息,不要诅咒。这里根本不关心错误类型。@JoeC--[Ljava.lang.String;@55f96302是错误显示的内容。我的代码尚未完成,因为我从未进行过此类练习。我正在尽全力删除与您的问题无关的内容。
while(stateSearch.hasNextLine()){
namearr.add(stateSearch.nextLine());
}
String[] arr = namearr.toArray(new String [0]);
System.out.println(arr);
public static void main(String[] args) throws FileNotFoundException {
List<String> nameArr = new ArrayList<>();
List<Double> intArr = new ArrayList<>();
System.out.print("Enter the State name: ");
Scanner in = new Scanner(System.in);
String inputFileName = in.next();
Scanner sc = new Scanner(new File("pplnames17.txt"));
while (sc.hasNextLine()) {
String nameLine = sc.nextLine();
if (nameLine.contains(inputFileName)) {
String[] inputs = nameLine.split(" ");
for (String input : inputs) {
if (isNumeric(input)) {
intArr.add(Double.parseDouble(input));
} else {
nameArr.add(input);
}
}
}
}
if (!nameArr.isEmpty()) {
System.out.println(nameArr);
} else {
System.out.println("No names found");
}
if (!intArr.isEmpty()) {
System.out.println(intArr);
} else {
System.out.println("No numbers found");
}
}
public static boolean isNumeric(String str) {
try {
double d = Double.parseDouble(str);
} catch (NumberFormatException e) {
return false;
}
return true;
}