我有一个字符串数组的数组,例如 String[] arr = ["question", "This", "is", "a"];
爪哇 - 匹配的字符串的字符串对
和我有一个单一的字符串,例如String q = "a foo This bar is This foo question a bar question foo";
(人为的例子,我知道)。
什么是最好的办法,我为了配合arr
对q
并打印出的arr[i]
所有出现,但不?因为每次我尝试这样做时,它都会将原始数组以的顺序返回给我,它们最初出现在arr
中,而不是它们出现顺序中的所有事件。
简而言之,我希望我的结果是类似["a", "This", "is", "This", "question", "a", "question"]
的东西,而我只是获取原始数组。
我的代码:
public static void ParseString(String[] arr, String q) {
for (int i = 0; i < arr.length; i++) {
if (q.contains(arr[i])) {
System.out.println(arr[i]);
}
}
}
我意识到这可能是一个很明显的错误,所以在此先感谢您的耐心。
只需使用正则表达式。正则表达式默认情况下,从左到右检查字符串。然后找到的所有匹配按目标字符串中的出现顺序排列。因此,使用array =>'(question | This | is | a)'来创建一个正则表达式。如果你有一个静态的巨大数组,使用[这个工具](http://www.regexformat.com)来创建一个正则表达式三元树字符串。将它复制到源代码中,然后在运行时用它构造一个正则表达式对象。例如[75,000字词典正则表达式](http://www.regexformat.com/Dnl/_Samples/_Ternary_Tool%20(Dictionary)/___txt/_ASCII_175,000_word_Mix_A-Z_Multi_Lined.txt) – sln