此文件从只有一行的文本文件中读取:
7319812227725338960527291316
,输出为:
Reading input values from text.txt
731
981
222
772
533
89
60
527
291
316
问题是该程序如何提供此输出?我不知道它如何在每个阵列单元中存储3位数字?
我还注意到,当我将txt文件的内容复制到Word时,它会粘贴此
7319812227725338960527291316
进入专栏:
731
981
222
772
533
89
60
527
291
316
文本文件来自我的老师。但是当我创建自己的文本文件并放置一个像123 456 789这样的数字时,输出是有意义的,因为txt文件中的数字是由空格分隔的,因此每个数字都将分配给一个数组单元格。
import java.util.Scanner;
import java.util.Vector;
import java.util.Arrays;
import java.io.File;
public class test{
public static void main(String[] args){
Scanner s;
if (args.length > 0){
try{
s = new Scanner(new File(args[0]));
} catch(java.io.FileNotFoundException e){
System.out.printf("Unable to open %s\n",args[0]);
return;
}
System.out.printf("Reading input values from %s.\n",args[0]);
}else{
s = new Scanner(System.in);
System.out.printf("Enter a list of non-negative integers. Enter a negative value to end the list.\n");
}
Vector<Integer> inputVector = new Vector<Integer>();
int v;
while(s.hasNextInt() && (v = s.nextInt()) >= 0)
inputVector.add(v);
int[] array = new int[inputVector.size()];
for (int i = 0; i < array.length; i++){
array[i] = inputVector.get(i);
System.out.println(array[i]);
}
}
}
答案 0 :(得分:3)
问题是行结束字符。您机器的文本编辑器无法理解您的教授程序插入的换行符。但是你的java程序会检查其他操作系统的行结尾。这就是为什么您的Java程序可以实际获取正确的数字。 我相信您可以使用不同的文本编辑器(如Sublime)从您的老师打开文本文件,这将允许您查看和转换具有不同行结束字符的文件