如何从txt文件行读取并打印字符串和整数数组

时间:2017-11-16 06:29:21

标签: java arrays string int readfile

我正在从文本文件中读取由onclick用户输入定义的特定行我试图从该行打印一个名称数组和数组。任何人都可以帮我解决这个问题吗?我是否必须创建2种不同的方法,还是可以在主要方法中完成所有操作?我只知道如何使用if(nameLine.contains(inputFileName)){在一个代码中使用一个Array,但我不确定如何将它们全部合并。谢谢你的帮助!

  

我的代码还没有完成,但到目前为止这是它的样子

while loop
  

这是我public static void main(String[] args) throws IOException { Scanner in = new Scanner(System.in); System.out.print("Enter the State name: "); String inputFileName = in.next(); String names = "pplnames17.txt"; List<String> namearr = new ArrayList<String>(); File namesFile = new File(names); Scanner stateSearch = new Scanner (namesFile); //print title String line0 = Files.readAllLines(Paths.get("pplnames17.txt")).get(0); System.out.printf("%s in %s", line0, inputFileName); while(stateSearch.hasNextLine()){ String nameLine = stateSearch.nextLine(); if(nameLine.contains(inputFileName)){ System.out.printf("\n%s",nameLine); } } 的{​​{1}}代码的一部分,我在Array

之后得到了它
String

1 个答案:

答案 0 :(得分:1)

虽然这不是最好的解决方案,但这是一个可以构建/整理的潜在解决方案。

基本上,读入你的文件,遍历每一行,如果该行包含用户输入,则在该行上分割每个string,检查文本或数字,并添加到相关数组。

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

我测试了它,我的文本文件是这样的:

  

abc def ghi 12 55 jkl mno pqr

     

joe jack mary 1 2 james 4

     

paul jim kim bob 45 othername

     

bill yu will gill 455 Paulo

mary的用户输入输出:

  

[joe,jack,mary,james]

     

[1.0,2.0,4.0]