首页 > 文章列表 > 如何在Java中删除以逗号分隔的字符串中的某个值?

如何在Java中删除以逗号分隔的字符串中的某个值?

java
345 2023-04-28

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

方法写的很简单,用于字符串能确保正规的情况是足够了;当然也可以根据具体的业务场景来改善逻辑,使代码更加完美。