java如何删除以逗号隔开的字符串中某一个值
作者:我不学java
这篇文章主要介绍了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
方法写的很简单,用于字符串能确保正规的情况是足够了;当然也可以根据具体的业务场景来改善逻辑,使代码更加完美。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。