Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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 如何从txt文件行读取并打印字符串和整数数组_Java_Arrays_String_Int_Readfile - Fatal编程技术网

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;
    }