【发布时间】:2016-11-12 04:06:28
【问题描述】:
所以在我的代码中,我试图读取一个类似的文件:
100
22
123;22
123 342;432
但是当它输出时会包含“;” (例如 100,22,123;22,123,342;432})。 我正在尝试将文件制作成一个数组(例如 {100,22,123,22,123...} )。 有没有办法读取文件,但忽略分号? 谢谢!
public static void main(String args [])
{
String[] inFile = readFiles("ElevatorConfig.txt");
for ( int i = 0; i <inFile.length; i = i + 1)
{
System.out.println(inFile[i]);
}
System.out.println(Arrays.toString(inFile));
}
public static String[] readFiles(String file)
{
int ctr = 0;
try{
Scanner s1 = new Scanner(new File(file));
while (s1.hasNextLine()){
ctr = ctr + 1;
s1.next();
}
String[] words = new String[ctr];
Scanner s2 = new Scanner(new File(file));
for ( int i = 0 ; i < ctr ; i = i + 1){
words[i] = s2.next();
}
return words;
}
catch(FileNotFoundException e)
{
return null;
}
}
【问题讨论】:
-
您不想忽略分号,您想将它们视为分隔符,就像空格一样。忽略
123;22中的分号会变成12322 -
顺便说一句,从不假装异常没有发生只是为了让代码编译。仅当您要对异常做一些有用的事情时才处理它。
-
试试 nextInt() 而不是 next()
-
尽可能只读取一个文件一次。您可以使用
ArrayLIst<String>而不是String[],并且只解析一次文件。 -
@J.L.Louis 将在第一个分号处爆炸。