我需要拆分已从外部文件读取的字符串。我已设法使用此代码拆分字符串;
String[] parts = line.split("\\.");
String part1 = parts[0];
String part2 = parts[1];
现在当我尝试访问数据时,index [0]的part1工作正常,但是试图让index [1]抛出索引超出范围的异常。我试图拆分的数据看起来像这样
886.0452586206898 27115740907.871643
888.0387931034484 26218442896.246094
890.032327586207 25301777157.154663
892.0258620689656 24365534070.686035
894.0193965517242 23409502709.11487
我是否打算在进行字符串拆分之前删除空格?
答案 0 :(得分:1)
我猜你是在逐行读取文件,然后你应该首先拆分"空间"然后再点,否则你会得到损坏的数据......
886.0452586206898 27115740907.871643
如您所见,每行中有2个元素可以用点
分割答案 1 :(得分:1)
因为我非常怀疑该指数正在迷失。您可能希望尝试此代码以确定数据是否完全有效。如果错误仍然发生,您可能会在某个不同的地方出现错误原因,并希望显示您的实际堆栈跟踪。
while ((line = br.readLine()) != null) {
if(line.contains(".")) {
String[] parts = line.split("\\.");
String part1 = parts[0];
String part2 = parts[1];
} else {
System.out.println("Corrupted data as: " + line);
}
}
答案 2 :(得分:0)
String[] parts = null;
String part1 = null;
String part2 = null;
System.out.println(parts[2]);
while ((line = br.readLine()) != null) {
System.out.println(line);
parts = line.split("\\.");
part1 = parts[0];
part2 = parts[1];
}
它无法正常工作,因为您正在尝试访问在while内声明的变量。尝试在它之外声明。
答案 3 :(得分:0)
是否要从输入中提取每个数字,然后按小数分割? 在这种情况下,使用扫描仪首先读入每个数字,然后拆分:
Scanner s = new Scanner(System.in);
while (s.hasNext()) {
String num = s.next();
String[] parts = num.split("\\.");
...
}