與領域取代我有一系列的文字報道一樣 "Contractile Front velocity"
他們如何找到而不會造成重複
他們中有些人對他們"Contractile Front velocitycms"
代替。還有其他一些與此類似的術語,其中像cms這樣的字符已被添加。
每個術語都有一個與之相關的數值結果,我試圖把術語和結果放到數據庫中。數據庫中的字段將(在這個例子中)"Contractile Front velocitycms"
所以我想任何報告(純文本)字段轉換是不有與之相關,以Contractile Front velocitycms
釐米。
因爲我有負載找到替換問題來解決我創建了一個使用StringUtils.replaceEach的方法,以便我可以使用簡單的冒號分隔文本文件作爲查找字典來執行查找和替換。
public static String FindNReplace(String n) throws IOException{
String [] split = null;
ArrayList<String> orig = new ArrayList<String>();
String [] orig_arr = null;
ArrayList<String> newDoc = new ArrayList<String>();
String [] newDoc_arr = null;
String dictionary="/Users/sebastianzeki/Documents/workspace/PhysiologyUpperGITotalExtractorv2/src/Overview/FindNReplaceDictionary.txt";
BufferedReader br = new BufferedReader(new FileReader(dictionary));
try {
StringBuilder sb = new StringBuilder();
String line = br.readLine();
while (line != null) {
split=line.split(":");
System.out.println(split);
orig.add(split[1]);
newDoc.add(split[0]);
sb.append(line);
sb.append("\n");
line = br.readLine();
}
} finally {
br.close();
}
orig_arr = new String[orig.size()];
orig_arr = orig.toArray(orig_arr);
newDoc_arr = new String[newDoc.size()];
newDoc_arr = newDoc.toArray(newDoc_arr);
String replacer = StringUtils.replaceEach(n, orig_arr, newDoc_arr);
return replacer;
}
詞典是這樣
PostPr :Post-Prandial
PostPr :Post-prandial
Nausea :nausea
的問題是,如果我只是用我的字典與Contractile Front velocitycms
然後偶爾,在收縮陣線velocitycms已經存在,我會得到Contractile Front velocitycmscms
和replaceEach
更換Contractile Front velocity
不使用正則表達式。任何人都可以想到一個解決方案,以避免我得到重複提到