忽略java中的空格和制表符

时间:2014-04-13 16:57:34

标签: java filereader

我在尝试忽略两个数字之间的标签时收到错误消息,错误显示如下:在文本文件中,我从那里读取有一些单位数字和一些两位数,这就是我使用的原因.substring(42 ,44);

Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "5    "
    at java.lang.NumberFormatException.forInputString(Unknown Source)
    at java.lang.Integer.parseInt(Unknown Source)
    at java.lang.Integer.parseInt(Unknown Source)
    at readTheFile.setSenID(readTheFile.java:230)
    at Sensor.setSensorID(Sensor.java:69)
    at getDrink.<init>(getDrink.java:22)
    at controlPanel$1.actionPerformed(controlPanel.java:54)

我尝试了几个替换空格和标签选项,例如temp.replaceAll(&#34; // t&#34;,&#34;&#34;)或(&#34; \ s +&# 34;,&#34;&#34)。我似乎无法找到一种方法来获得只读int。有什么想法吗?

继承了我认为导致问题的代码

BufferedReader bufferedReader = new BufferedReader(fileReader);


            int lineNumber = 0;

            ArrayList<Integer> SenID = new ArrayList<Integer>();
            while((line=bufferedReader.readLine())!=null){
                lineNumber++;
                if (lineNumber >= 24) {
                    String temp = line.substring(42, 44);
                    temp.replaceAll("//s+", "");    //think error is here
                    int x = Integer.parseInt(temp);
                    SenID.add(x);                         
                        }
                    }

这是从

读取的文件
25-Feb-2008 00:20:14    25-Feb-2008 00:22:57    24  1
25-Feb-2008 09:33:41    25-Feb-2008 09:33:42    24  1
25-Feb-2008 09:33:47    25-Feb-2008 17:21:12    24  1
25-Feb-2008 09:36:43    25-Feb-2008 09:37:04    5   1
25-Feb-2008 09:37:20    25-Feb-2008 09:37:23    6   1
25-Feb-2008 09:37:51    25-Feb-2008 09:37:52    14  1
25-Feb-2008 09:37:55    25-Feb-2008 09:37:56    14  1
25-Feb-2008 09:37:58    25-Feb-2008 09:38:01    6   1

1 个答案:

答案 0 :(得分:2)

temp.replaceAll("//s+", "");

应该是

temp = temp.replaceAll("//s+", "");

字符串是不可变的,因此replaceAll()trim()等方法将返回一个新字符串,而不是修改现有字符串。