0

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

文本文件示例:

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

4 回答 4

3

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

strLine = strLine.substring(index);

(对于类似toUpperCase,trim等的东西也是如此replace

于 2013-03-01T19:43:46.030 回答
3

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

strLine=strLine.substring(index);

另请注意,indexOf(str)它不采用正则表达式,因此indexOf("\\s")不会给您任何东西。

于 2013-03-01T19:44:03.100 回答
1

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

strLine = strLine.substring(index + 1);

得到你的第二个领域,推进过去的空间字符,只要index不是-1(未找到)。

于 2013-03-01T19:52:03.127 回答
-1

.substring使用Java操作字符串

www.gleegrid.com/all_in_one/language/substring

于 2013-11-24T13:41:52.420 回答