3

我正在尝试使用 java 中的“.equal”从文本文件中查找和读取字符串。我知道我可以通过使用“.contain”来简单地做到这一点,但我只想知道是否有办法找到并阅读这样的行:

例如,我在文本文件中有以下数据:

ID1   123   123
ID2   125   136

现在

String ID="ID1"; 
while ((ss = buffered_reader.readLine()) != null){
if (ss.equals(ID+[anything])){do something} } 

我为什么要这样做是为了防止只输入“ID”就得到结果。那么有没有像正则表达式或其他可以提供帮助的方法?

澄清:

我想找到 ID 的完全匹配,例如:

如果您输入 ID1,那么程序会说: true but false for enter just ID

如果我使用 .contain 程序找到单词 ID1 或 ID2 并且因为它们包含 "ID" ,那么它总是返回一个真值。

现在我想使用 .eqaual 来查找完全匹配的内容,然后是任何内容

4

4 回答 4

4

试试这个:

String ID="ID1"; 
while ((ss = buffered_reader.readLine()) != null) {
    if (ss.matches(ID+".*")){do something} }
}

表达式.*表示任何字符序列,甚至是空序列。因此,如果ID是“ID1”,那么它将匹配string以 ID1 开头的任何内容。

于 2012-06-19T15:10:50.923 回答
2

试试这个正则表达式:

ID.+

仅当字符串具有“ID”子字符串加上至少一个字符时才会匹配。

于 2012-06-19T15:07:24.650 回答
2

一个正则表达式,例如:

(ID\d+)\s+(\d+)\s+(\d+)

将让您捕获三个组,其中包含感兴趣的值。例如对于这个输入:

ID1   123   123

第一组将包含ID1组 twp 将包含123123

于 2012-06-19T15:11:05.013 回答
0

您还可以测试行的长度,如下所示(移动的代码比regex少):

while ((ss = buffered_reader.readLine()) != null) {
   if (ss.length()>3) {
       // Do your job
   }
}
于 2012-06-19T15:29:09.747 回答