我有一个.txt文件,其格式为整数,后跟浮点数,它们由每行中的空格字符分隔。我想从每一行读取浮点数,然后将其放入数组中。
到目前为止,这是我的代码,但是当我运行它时,它会给我一个ArrayIndexOutOfBoundsException
因为我猜它永远不会创建第二个值:
BufferedReader reader = null;
try{
reader = new BufferedReader(new InputStreamReader(new FileInputStream(
new File(root.getAbsolutePath().toString()+"/samplefile.txt"))));
String line = null;
String[] numbers = null;
int i = 0;
value.clear();
while((line = reader.readLine()) != null){
numbers = line.split("/\\s/");
value.add(Float.valueOf(numbers[1].trim()));
}
mTextview5.setText(String.valueOf(value.get(1)));
}catch(IOException e){
e.printStackTrace();
}
那么我怎样才能获得第二个价值呢?
答案 0 :(得分:1)
尝试:
numbers = line.split("\\s+");
答案 1 :(得分:1)
您是否尝试使用调试器? 你会得到一个非常快的结果,程序停止并崩溃。
arraylist(您的值)不应抛出ArrayIndexOutOfBoundsException。 我的猜测是你可能有错误的正则表达式。
numbers = line.split("/\\s/");
numbers[1] # there is a possibility that your "split regex"
#returns a smaller array than expected, thus ArrayIndexOutOfBoundsException.
这样的正则表达式
答案 2 :(得分:1)
numbers = line.split(" ");
问题是你的正则表达式。使用调试器,您最好了解代码的问题。