如何申报;“任何事”;使用java?
我试图在java中使用“.equal”从文本文件中查找和读取字符串。我知道我可以简单地用“.contain”代替,但我只想知道是否还有其他方法可以找到并阅读这样的行: 例如,我在文本文件中有以下数据:如何申报;“任何事”;使用java?,java,netbeans-7,Java,Netbeans 7,我试图在java中使用“.equal”从文本文件中查找和读取字符串。我知道我可以简单地用“.contain”代替,但我只想知道是否还有其他方法可以找到并阅读这样的行: 例如,我在文本文件中有以下数据: ID1 123 123 ID2 125 136 现在 我之所以要这样做是为了防止只输入“ID”而得到结果。那么有没有像正则表达式之类的方法可以帮助你呢 澄清: 我想找到与ID完全匹配的项,例如: 如果输入ID1,程序会显示:true 但输入身份证是错误的 如果我使用.contai
ID1 123 123
ID2 125 136
现在
我之所以要这样做是为了防止只输入“ID”而得到结果。那么有没有像正则表达式之类的方法可以帮助你呢
澄清:
我想找到与ID完全匹配的项,例如:
如果输入ID1,程序会显示:true
但输入身份证是错误的
如果我使用.contain,程序会查找单词ID1或ID2,因为它们包含“ID”,所以它总是返回一个真值
现在,我想使用.equal查找后跟任何内容的精确匹配,请尝试以下正则表达式:
ID.+
仅当字符串具有“ID”子字符串加上至少一个字符时,此项才匹配。请尝试以下操作:
String ID="ID1";
while ((ss = buffered_reader.readLine()) != null) {
if (ss.matches(ID+".*")){do something} }
}
expresion
*
表示任何字符序列,甚至是空序列。因此,如果ID
是“ID1”,那么它将匹配任何以ID1开头的字符串。正则表达式,例如:
(ID\d+)\s+(\d+)\s+(\d+)
将让您捕获三个组,其中包含感兴趣的值。例如,对于该输入:
ID1 123 123
第一组将包含ID1
第twp组将包含123
和123
您还可以测试行的长度,类似这样(移动的代码比正则表达式少):
也许是我,但我不明白你的问题是什么。你能澄清你的问题吗?顺便说一下,我没有投反对票,因为我们还没有给你机会答复我的请求。你听说过正则表达式吗?现在是熟悉它们的时候了:-)例如,如果某个东西不通过.eqaul()而等于任何东西,那么不是任何其他方式吗?@KlausByskovHoffmann显然是的,正如他所说,“那么有没有像正则表达式这样的方式或其他方式可以帮助你?”@克劳斯:是的,我知道regex,但只是不知道如何在这里使用它们。谢谢tibtof,它工作得很好,很干净。我必须接受你的回答:DHe没有要求这样的东西。。。但是很好的推断。
ID1 123 123
while ((ss = buffered_reader.readLine()) != null) {
if (ss.length()>3) {
// Do your job
}
}