【发布时间】:2017-01-08 09:20:23
【问题描述】:
我必须寻找一个字符串 "Languages:" 后面有语言。
例如,我可以查找“语言:英语、德语”和 “语言:德语、英语”如果只有 2 种语言。如果有 3 个,我需要寻找 6 种不同的组合。对于 4,将有 24 种组合。对于 5 将有 120 等,这是笨拙的。
我想做类似的事情
grep 语言 | grep 英语 | grep 德语 | grep 意大利语 | grep 丹麦语 | grep 法语 (或者我正在寻找的任何语言)。我认为我们不能在 Windows 上使用 grep。我可以使用正则表达式,但我不知道如何创建一个可以按任何顺序列出语言的表达式。
有什么建议吗?假设我有一个 List 语言,其中包含我想要查找的所有语言。
【问题讨论】:
-
你在问如何从 Java 中搜索文本文件吗?如果是这样,您是否确定通过搜索网络找不到示例? --- 另外,regex
|construct 的哪一部分让您感到困惑? -
没有。我有一个字符串中的文本。我想它会是相似的。我知道如何做 macth 和包含甚至替换,但我不明白/知道如何指定几个字符串,其中任何一个都可以按顺序出现。
-
如果你有一个字符串中的文本,你为什么要运行
grep,它是一个独立于Java的命令行程序? --- 至于你的陈述“我可以使用正则表达式,但我不知道如何创建一个可以按任何顺序列出语言的表达式”,我会再问:正则表达式|构造让您感到困惑?也许您应该了解更多关于正则表达式的信息,而不是要求我们为您编写。 -
听起来你想比较两个 Sets 的字符串。将您的目标语言列表转换为一个集合,解析输入文本的每一行并将其语言列表放入一个新集合中,并使用
equals进行比较。 (HashSet 是一个足够的 Set 实现。)