JAVA中String類的split方法的易錯點
阿新 • • 發佈:2019-01-28
最近在專案中遇到了一個問題,就是解析字串成陣列進行比對的,
比如:
{
"imageDetail": "123&234&&",
"imageType": "O&A&B&C"
}
imageType與imageDetail資料屬於一一對應關係,
方案一:split("&")
將imageType用split方法(imageType.split("&"))分隔成陣列是:['O','A','B','C']
將imageDetail用split方法(imageDetail.split("&"))分隔成陣列是:['123','234']
發現解析後的陣列不是一一對應的關係了,
方案一缺點:只能解析到"O&A&B&C"這個情況的資料,
不能解析"123&234&&",這個情況下後面的&空資料;
查閱相關知識之後,發現split方法可以指定分隔數量,即:split("&",10)這種情況
方案二:split("&",number)
將imageType用split方法(imageType.split("&"))分隔成陣列是:['O','A','B','C']
將imageDetail用split方法(imageDetail.split("&",imageType.split("&").length))分隔成陣列是:['123','234','','']
發現解析後的陣列是一一對應的關係了
在此記錄錯誤點