如何将混合类型文件中的整数存储到数组中? Java的

时间:2014-02-19 01:03:16

标签: java arrays file-io

我有一个带有一些整数和字符串的文本文件(扫描仪文件)。我想浏览文件,取整数并将它们存储到整数数组(array1)。

以下是我使用的方法:

  public void printIntArray(Scanner file){
      int x = 0;
      while(file.hasNext()){
        array1[x] = file.nextInt();
        x++;
      }

      System.out.println("The list size is: " + (x+1));
      System.out.print("The list is:");

    for(int z=0; z <= x ; z++)
        System.out.println(array1[z]);

    }

这是我的输出:

输入文件名:input.txt
该文件的内容是:12 dsafa 14 daf 11 10 afa 3.5
清单大小为:1
列表是:0

array1 []在此处声明:

import java.io.*;
import java.util.Scanner;
public class Lab2_2Menu {

private static int LENGTH = 100;
private int[] array1;
private String fileName;

public Lab2_2Menu(){

  array1 = new int [LENGTH];

}

1 个答案:

答案 0 :(得分:0)

我建议使用List<Integer>而不是[]。只需遍历文件并用逗号删除所有非数字字符,替换所有重复的逗号,然后用逗号分割。

public static void main(String[] args) throws FileNotFoundException {
    Scanner scanner = new Scanner(new FileInputStream("input.txt"));
    printIntArray(scanner);
}

public static void printIntArray(Scanner file) {
    List<Integer> list = new ArrayList<Integer>();
    while (file.hasNext()) {
        String[] tokens = file.nextLine().replaceAll("\\D", ",").replaceAll(",+", ",").split(",");
        for (String token : tokens) {
            if(!token.equalsIgnoreCase("")){
                list.add(Integer.parseInt(token));                  
            }
        }
    }

    for (Integer num : list) {
        System.out.println(num);
    }

}