在Java中使用.substring操作字符串

时间:2013-03-01 19:42:27

标签: java string character substring

我正在从一个文本文件中逐行阅读,该文件包含一个字符串,后跟一个空格,后跟另一个字符串。这是我想用于我的方法的第二个字符串。

文本文件示例:

0h e3ne6t
ie 51b0x
6 8qlaqi
ty2 9j5dbb
nwz55 7lrwor

所以我想'e3ne6t',然后'51b0x'等。

我尝试过使用.substring方法,并尝试使用“”和“\ s”作为空格的表示。

这里有一段代码,可以让你很好地了解我想要实现的目标。

        while ((strLine = br.readLine()) != null) {
            lineNumber++;
            System.out.println("lineNumber = " + lineNumber);
            int index = strLine.indexOf(" "); // tried \\s
            System.out.println("index = " + index);
            strLine.substring(index);
            System.out.println(strLine);
            if (myString.equals(strLine)) {
                System.out.println("Match Found!");;
                System.out.println("myString = " + myString );
                System.out.println("strLine =" + strLine);
            }
        }

我甚至尝试将空白区域更改为“+”但仍然无效。

建议?

4 个答案:

答案 0 :(得分:3)

substring不会更改您调用它的字符串的内容 - 没有任何内容,因为String在Java中是不可变的。相反,它返回一个新的字符串,它是相关的子字符串。所以你可以使用:

strLine = strLine.substring(index);

(对于toUpperCasetrimreplace等内容也是如此。)

答案 1 :(得分:3)

java中的字符串是不可变的。您需要将substring检索到的值重新分配给实际变量。

strLine=strLine.substring(index);

另请注意,indexOf(str)不会使用正则表达式,因此indexOf("\\s")不会为您提供任何内容。

答案 2 :(得分:1)

正如其他人所提到的,字符串在Java中是不可变的。 substring方法返回一个新的String,它是子字符串。但是,如果您将index传递给substring,那么您将获得一个以空格字符开头的子字符串,例如“e3ne6t”。所以我会用这个:

strLine = strLine.substring(index + 1);

只要index不是-1(未找到),就可以获得第二个字段,超过空格字符。

答案 3 :(得分:-1)

使用Java中的.substring操作字符串

www.gleegrid.com/all_in_one/language/substring