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。

推薦閱讀: