我正在尝试从文本文件中提取单个行的数字并对它们执行操作并将它们打印到新的文本文件中。
我的文本文件会读取像
这样的内容10 2 5 2
10 2 5 3
等...
我喜欢做一些认真的数学运动,所以我希望能够从我正在使用的行中调用每个数字并将其计算在内。
似乎数组是最好用的,但要将数字放入数组,我是否必须使用字符串标记器?
答案 0 :(得分:4)
Scanner sc = new Scanner(new File("mynums.txt"));
while(sc.hasNextLine()) {
String[] numstrs = sc.nextLine().split("\\s+"); // split by white space
int[] nums = new int[numstrs.length];
for(int i = 0; i < nums.length; i++) nums[i] = Integer.parseInt(numstrs[i]);
// now you can manipulate the numbers in nums[]
}
显然,您不必使用int[] nums
。你可以改为
int x = Integer.parseInt(numstrs[0]);
int m = Integer.parseInt(numstrs[1]);
int b = Integer.parseInt(numstrs[2]);
int y = m*x + b; // or something? :-)
或者,如果您提前知道所有整体的结构,您可以这样做:
List<Integer> ints = new ArrayList<Integer>();
Scanner sc = new Scanner(new File("mynums.txt"));
while(sc.hasNextInt()) {
ints.add(sc.nextInt());
}
它创建的Integer对象不太理想,但现在并不昂贵。在您将它们啜饮后,您始终可以将其转换为int[]
。