我正在尝试使用方法split来按行分割数据。这是我试图使用的代码,但我无法弄清楚用什么来表示.split()的参数。这就是数据在txt中的方式。
19
23
58
49
Scanner sc = new Scanner(new File("random.txt"));
string line = sc.nextLine();
String[] numbers = line.split(" ");
int nums = new int[numbers.length];
for(int i=0;i<numbers.length;i++)
nums[i] = Integer.parseInt(numbers[i]);
最终目标是将数据放入数组中,而不是仅将其打印出来。
答案 0 :(得分:2)
如果每行只有一个数字,则无需使用拆分。
只需使用以下
Scanner sc = new Scanner(new File("C:/projects/random.txt"));
while( sc.hasNext()){
System.out.println(sc.nextInt());
}
答案 1 :(得分:1)
尝试使用它:
扫描仪sc =新扫描仪(新文件(&#34; random.txt&#34;));
int [] nums;
int i = 0;
while(sc.hasNext()){
String line = sc.nextLine(); nums[i] = Integer.parseInt(line); i++;
}
希望这有帮助。
答案 2 :(得分:0)
就这么简单,你不需要split
,因为你正在逐行阅读,@Luiggi Mendoza说
Scanner sc = new Scanner(new File("C:/projects/random.txt"));
while( sc.hasNext()){
nums[i] = Integer.parseInt(numbers[i]); //They're stored in here
i++;
}
int max = i; //To keep length of numbers that have been read
for(i = 0; i < max; i++){
System.out.println(nums[i]); //We print them from the array
}
答案 3 :(得分:0)
试试这个
while(true){
int tmp=line.indexOf(" ");
if(tmp==-1)
break;
System.out.println(ar[i]);
ar[i++]=Integer.parseInt(line.substring(0,tmp));
line =line.substring(tmp+1);
}