首頁 > 軟體

java如何刪除以逗號隔開的字串中某一個值

2022-06-30 14:01:41

刪除以逗號隔開的字串中某一個值

例如要刪除 “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

方法寫的很簡單,用於字串能確保正規的情況是足夠了;當然也可以根據具體的業務場景來改善邏輯,使程式碼更加完美。

以上為個人經驗,希望能給大家一個參考,也希望大家多多支援it145.com。


IT145.com E-mail:sddin#qq.com