我正在从一个文本文件中逐行阅读,该文件包含一个字符串,后跟一个空格,后跟另一个字符串。这是我想用于我的方法的第二个字符串。
文本文件示例:
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);
}
}
我甚至尝试将空白区域更改为“+”但仍然无效。
建议?
答案 0 :(得分:3)
substring
不会更改您调用它的字符串的内容 - 没有任何内容,因为String
在Java中是不可变的。相反,它返回一个新的字符串,它是相关的子字符串。所以你可以使用:
strLine = strLine.substring(index);
(对于toUpperCase
,trim
,replace
等内容也是如此。)
答案 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
操作字符串