我有一个带有一些整数和字符串的文本文件(扫描仪文件)。我想浏览文件,取整数并将它们存储到整数数组(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];
}
答案 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);
}
}