java中split函數參數特殊字符的處理(轉義),如:"." 、"\"、"|"


內容介紹

本文主要介紹java中特殊字符做為split函數的參數,如:"." 、"\"、"|",雙引號等,不能正確分隔源字符串的處理方法。

代碼示例

使用"|"進行分隔的代碼

String reclassData= "0,15,0|15,30,1|30,45,2|45,60,3|60,75,4|75,90,5|'NODATA','NODATA'";
String[] arrData = reclassData.split("|");

arrData的值如下:

很顯然,這結果不是我們想要的預期結果,追其原因,因為"|"是特殊字符,在使用split函數時,需要轉義,即:"\\|",修改后的代碼如下:

String reclassData= "0,15,0|15,30,1|30,45,2|45,60,3|60,75,4|75,90,5|'NODATA','NODATA'";
String[] arrData = reclassData.split("\\|");

結果如下:

這次結果對了,像"|"這樣的特殊字符還有".","\","$",在使用時,均需要轉義。

String reclassData4 = "0,15,0$15,30,1$30,45,2$45,60,3$60,75,4$75,90,5$'NODATA','NODATA'";
String[] arrData4 = reclassData4.split("\\$");
String reclassData2 = "0,15,0.15,30,1.30,45,2.45,60,3.60,75,4.75,90,5.'NODATA','NODATA'";
String[] arrData2 = reclassData2.split("\\.");

在使用"\"分隔時,要注意在源字符串要使用"\\"進行轉義,而split的參數要使用"\\\\",代碼如下:

String reclassData3 = "0,15,0\\15,30,1\\30,45,2\\45,60,3\\60,75,4\\75,90,5\\'NODATA','NODATA'";
String[] arrData3 = reclassData3.split("\\\\");

盡量避免使用英文狀態下的單引號、雙引號來做為split的參數,如迫不得已,使用下面的方式來處理:

//雙引號的處理
String reclassData5 = "0,15,0\"15,30,1\"30,45,2\"45,60,3\"60,75,4\"75,90,5\"'NODATA','NODATA'"; String[] arrData5 = reclassData5.split("\"");

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM