【发布时间】:2016-12-01 12:07:07
【问题描述】:
我有一个文件,其中包含一些格式的数据:
12345foo \n
24561bar \n
12783apples \n ect.
为了处理这些数据,我正在使用 bufferedreader 将其读入一个程序,并将其放入一个二维数组中,代码如下:
line = bRead.readLine();
2DArray[x][y] = line.substring(0,5);
2DArray[x][z] = line.substring(5,line.length());
我不确定为什么在这种情况下 line.length 显然给了我(line.length() - 5)。
【问题讨论】:
-
呃,不是。
line.length()给你line.length()。你对substring的第二个参数的含义感到困惑吗? It's the offset from the start,不是5之后的字符数。不是说你需要传递第二个参数,如果你只想要字符串的其余部分。 -
似乎您可能会在正则表达式
\d和\D中找到用于仅获取数字和非数字的用途 -
您的期望是什么?为什么你认为 line.length() 会给你字符串的长度减 5?
-
您的代码将
12345和foo分开,代码没有问题,我认为您的看法是错误的。 -
您要这样做吗? 2DArray[x][z] = line.substring(5);
标签: java arrays string bufferedreader