我正在尝试在数组列表中搜索字符串,如下所示正常工作。但是,挑战在于我正在搜索的字符串嵌入在某些文本示例“XXXXTESTXXXX”之间。 到目前为止我所拥有的二进制搜索似乎找不到它。我也试过“包含”方法,但也没有用。不知道我哪里错了。请建议。
Array Content :[PIGEON, XXXBEARXXX , XXXCAT, XXXDOG, XXXELEPHANTXXX , XXXHORSEXXX , XXXLIONXXX , XXXMOUSEXXX , XXXOWLXXX , XXXPARROTXXX , XXXTIGERXXX ]
搜索字符串示例: -
Search String = "BEAR"
代码
ArrayList File_F1_Array = new ArrayList();
// Read the lines of the Source file (File_1) in to Arraylist
try {
BufferedReader File_F1_Br = new BufferedReader (new FileReader(File_F1));
while ((File_F1_Line = File_F1_Br.readLine()) !=null ) {
File_F1_Array.add(File_F1_Line);
}
File_F1_Br.close();
} catch (Exception e) {
e.printStackTrace();
}
// Sort the array list
Collections.sort(File_F1_Array);
// Search lines from Refernce file (File_2) in Arraylist
try {
BufferedReader File_F2_br = new BufferedReader (new FileReader(File_F2));
while ((File_F2_Line = File_F2_br.readLine()) !=null) {
int index = Collections.binarySearch(File_F1_Array, File_F2_Line);
boolean StringCheck = File_F1_Array.contains(File_F2_Line);
}
答案 0 :(得分:0)
你的算法不正确!你在数组中搜索有" xx ..."你想要摆脱" xx ......" s!你必须创建另一个没有" xx的arraylist。"并在两个数组之间放置一些绑定密钥,以便使第一个数组保持Xs。