這兩天筆者調試自動化測試插件,sql查詢的時候引用動態參數,引用的參數圖片識別的map裏面的值,結果每次都是查詢無結果,後來發現,參數替換後的查詢語句不對,多了一個空白行,同時還多了一個換行的操作(如圖)。
記錄一下解決的方法:
//模擬一下當時的數據情況
String src="select * from h where bsm like '%2314\n\n' and bdcdyh is not null";
//這個方法刪除其中空白行,如果很多數據都要這樣處理,可以封裝成一個方法
String src1=src.replaceAll("((\r\n)|\n)[\\s\t ]*(\\1)+", "$1").replaceAll("^((\r\n)|\n)", "");
//這個方法是刪除其中的換行符
String ocrResult=src1.replace("\n","");
但是後面想了一下,空白行和換行符的感覺應該是一樣的,後面試了一下,果然是可以只寫replace("\n","")
這個的。筆者是windows環境,目前這樣寫,後面有問題,我會回來更新的。
注意:windows中的換行符是:\r\n,linux系統中的換行符是:\n
//模擬一下當時的數據情況
String src="select * from h where bsm like '%2314\n\n' and bdcdyh is not null";
//這個方法是刪除其中的換行符
String ocrResult=src.replace("\n","");
那個replaceAll,參考的是這篇java去掉空行,希望能對大家有幫助!