java如何刪除以逗號隔開的字符串中某一個值
刪除以逗號隔開的字符串中某一個值
例如要刪除 “1,2,3,4” 中的 2,返回 “1,3,4”
import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class test { public static void main(String[] args) { String str="1,2,3,4"; //原字符串 String newStr=""; //新字符串 String[] array=str.split(","); //字符串轉數組 List<String> list= Arrays.asList(array); List<String> arrList = new ArrayList<String>(list); //字符串轉集合 arrList.remove("2"); //要刪除的元素 String[] strings = new String[arrList.size()]; //再將集合轉為數組 String[] newArray = arrList.toArray(strings); //遍歷數組,插入逗號 for(int j=0;j<newArray.length;j++){ newStr+=newArray[j]+","; } if(!"".equals(newStr)){ //如果刪完之後字符串不為空 newStr=newStr.substring(0, newStr.length()-1); //刪除最後的逗號 } System.out.println(newStr); } }
輸出結果
移除以逗號分隔的字符串中指定元素
封裝的一個小方法。
適用場景
如有個字段用來存儲多個用戶 ID,並且是以逗號分隔的,例:1,2,3,現要移除指定的某個 ID
核心代碼
/* * @ClassName Test * @Desc TODO 移除指定用戶 ID * @Date 2019/8/31 14:58 * @Version 1.0 */ public static String removeOne(String userIds, Long userId) { // 返回結果 String result = ""; // 判斷是否存在。如果存在,移除指定用戶 ID;如果不存在,則直接返回空 if(userIds.indexOf(",") != -1) { // 拆分成數組 String[] userIdArray = userIds.split(","); // 數組轉集合 List<String> userIdList = new ArrayList<String>(Arrays.asList(userIdArray)); // 移除指定用戶 ID userIdList.remove(userId.toString()); // 把剩下的用戶 ID 再拼接起來 result = StringUtils.join(userIdList, ","); } // 返回 return result; }
測試驗證
直接 main 裡面跑一下
// 傳入的所有用戶 ID String userIds = "1,2,3"; // 遍歷移除用戶 ID,並打印到控制臺 for(int i = 1 ; i <= 3; i++) { System.out.println(userIds = removeOne(userIds, Long.parseLong(String.valueOf(i)))); }
控制臺輸出結果
2,3
3
方法寫的很簡單,用於字符串能確保正規的情況是足夠瞭;當然也可以根據具體的業務場景來改善邏輯,使代碼更加完美。
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。