【问题标题】:Getting integers from text file and work on array list in java [closed]从文本文件中获取整数并在java中处理数组列表[关闭]
【发布时间】:2013-05-14 17:26:33
【问题描述】:

我的文本文件包含:

“我有 3 个苹果和 1 个香蕉。
所有人至少有 4 辆汽车。”

我想读取这个 .txt 文件并从中获取整数。我将在 arrayList 中存储整数变量。

public class dedede {
    public static void al() throws Exception {

        File f = new File("C:\\users\\sony\\Desktop\\456.txt");

        try {
            FileReader islem = new FileReader(f);

            char data[] = new char[(int) f.length()];

            islem.read(data);
            String metin = new String(data);

            ArrayList<Integer> yapi = new<Integer> ArrayList();

            StringTokenizer s = new StringTokenizer(metin);

            String dizi[] = new String[s.countTokens()];

            int i = 0;
            while (s.hasMoreTokens()) {
                dizi[i] = s.nextToken();
                i++;
            }

            for (int c = 0; c < dizi.length; c++) {
                if (Integer.parseInt(dizi[c]) > 0) {
                    yapi.add(Integer.parseInt(dizi[c]));
                }

            }

            System.out.println(yapi);
        } catch (IOException e) {
            e.printStackTrace();
        }

    }

    public static void main(String[] args) throws Exception {
        al();
    }
}

【问题讨论】:

  • 您遇到了什么问题/问题?
  • 我想编程读取文件识别整数并将它们存储在数组中。
  • 除了您的代码之外,您还应该说明您在运行它时遇到的问题或对结果有任何疑问。

标签: java arrays file arraylist io


【解决方案1】:

试试这个:

static ArrayList<Integer> al = new ArrayList<Integer>();

public static void main(String[] args) {

    try {
        File file = new File("C:\\users\\sony\\Desktop\\456.txt");
        BufferedReader in = new BufferedReader(new FileReader(file));
        String s; 
        while ((s = in.readLine()) != null) {
            findInteger(s);
        }
        in.close();
    } catch (IOException e) {
        System.out.println("File Read Error: " + e.getMessage());
    }
    System.out.println("Integers: " + al);
}

private static void findInteger(String s){
    String [] parts = s.split(" ");

    for (int i = 0; i < parts.length; i++) {
        try{
            int j = Integer.parseInt(parts[i]);
            al.add(j);
        } catch (Exception e){}
    }
}

【讨论】:

  • 谢谢你。你一直很有帮助我只是错过了一些非常简单的东西:)
猜你喜欢
  • 1970-01-01
  • 2018-02-16
  • 2014-01-02
  • 2015-01-22
  • 1970-01-01
  • 2019-02-24
  • 2017-11-09
  • 2022-07-21
  • 2013-07-16
相关资源
最近更新 更多