我正在尝试获取具有以下文本的文本文件的int值:
123456789 12345678 1234567 123456 12345 1234 123 12 1
您可以看到每个数字都不同,它们位于由“空格”分隔的同一行中。我需要将值分开。得到这样的东西:
INT1 = 123456789, INT2 = 12345678, INT3 = 1234567;
等等。我不创建文本所以我不知道他们有多少数字和组,但他们总是被“空间”隔开。我知道如何阅读它。这就是我读它的方式:
try {
TEST1 = new BufferedReader(new FileReader("/sdcard/test.txt")).readLine();
} catch (NumberFormatException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
TEST.setText(""+scaling_available_frequencies);
我得到了这个输出
194208 776175 958253 767883 700246 243663 966618 345199 945363 459833
注意:这只是我创建的test.txt,看它是否有效。当前代码将要求用户输入路径和文件名。
现在我如何将它们设置为每组变量?
由于
答案 0 :(得分:2)
这是将String解析为整数数组的一种方法:
public int[] toIntArray( String stringFromFile ){
String[] allStrings = stringFromFile.split( "\\s" );
int[] intArray = new int[allStrings.length];
for( int i = 0; i < allStrings.length; ++i ){
try{
intArray[i] = Integer.parseInt( allStrings[i] );
}catch( NumberFormatException e ){
// Do whatever you think is appropriated
intArray[i] = -1;
}
}
return intArray;
}
希望这有帮助。
答案 1 :(得分:1)
我相信readLine()可以获得String。 您将需要使用String的Split()方法并传入regularExpression(空格)。
然后您将需要使用Integer.parseInt()方法并传入每个字符串以将它们解析为Integer。 你还需要一个循环来解析,直到什么都没有了