【发布时间】:2012-10-21 09:42:54
【问题描述】:
我有一个包含如下文本行的文件:
[A]
这是一行。
这是另一行。
[B]
第三行。
...
等等。我想将此文件读入 Java 并查找仅包含 [A] 等的行以供进一步参考。我试过了:
Resources res = getResources();
InputStream in_s = res.openRawResource(R.raw.texts);
byte[] b = new byte[in_s.available()];
in_s.read(b);
String textstring = new String(b);
String[] textarr = textstring.split("[\\r\\n]+");
然后:
int lineB = 0;
for (int i=0; i<textarr.length; i++) {
if textarr[i].substring(0, 3) == "[B]") lineB = i;
}
之后,行仍然为零。首先,我认为这与处理新行的方式有关(我使用的是 Windows),但我对 substring(0,3) 也没有运气。我希望这给我 lineB = 3,任何想法我做错了什么?
【问题讨论】:
-
不要使用
==来比较字符串。使用equals(...)方法。 -
像魅力一样工作!非常感谢,我为此发疯了。
-
不客气。这很重要的原因是因为 == 检查两个 objects 是否相同,这不是您感兴趣的。另一方面,
equals(...)和equalsIgnoreCase(...)方法检查如果两个字符串以相同的顺序具有相同的字符,这就是这里的重点。
标签: java string split newline substring