假设定义了一个字符串:
String list = "apples,orange,bears,1,100,20,apple";
如果不将列表分隔成集合或数组,是否有更好的方法在列表中查找字符串?例如,如果我搜索
"bear",
应该没有结果,因为不会有完全匹配(bears
不算数)。不能查找“,bear,"
,因为不能保证bear一词不会出现在文件的开头或结尾。 最佳答案
你仍然可以使用类似于:
(^|,)bears(,|$)
它将寻找逗号,或开始或结束的行,我相信这是你正在寻找的。
编辑:附录
由于denomales提到了它,上面的regex搜索将使用它能找到的任何逗号(如果有的话),这样在
apples,orange,bears,honey,bears,bears,bears,bears,9999,bees
这样的列表中,您将得到重叠的匹配,并且在5个当前的列表中只计算3个熊。在这种情况下,您可以使用lookarounds。你可能需要花点时间去了解他们,但要点是他们会在不消耗他们的情况下看后面或前面的角色。这样就可以找到所有的5只熊,这就是你使用它们的方式:(?<=^|,)bears(?=,|$)
人物分类…
^
表示一行的开始,这样在没有逗号的情况下,您仍然可以得到一个匹配项。,
是文本逗号。(?<= ... )
是一个正面的注视点,它将注视b
中的bears
字符后面,以确保里面有什么,即a^
或a,
。(?= ... )
是一个积极的展望,它将关注s
中的bears
字符,以确保里面有什么,即a,
或a$
。$
表示一行的结尾,工作方式非常类似于^
,但在结尾。关于java - 在逗号分隔的字符串中查找值的更好方法(Java/Android),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17774328/