java如何删除以逗号隔开的字符串中某一个值
作者:我不学java 发布时间:2023-06-12 11:59:19
标签: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
方法写的很简单,用于字符串能确保正规的情况是足够了;当然也可以根据具体的业务场景来改善逻辑,使代码更加完美。
来源:https://blog.csdn.net/qq_40223803/article/details/104384822


猜你喜欢
- 前言Android开发中经常使用findViewById来获取控件然后进行一些列操作,当控件太多的时候代码就非常臃肿,今天就来学习一个新的开
- 方案实施1、 spring和ehcache集成主要获取ehcache作为操作ehcache的对象。spring.xml中注入ehcacheM
- 群里有人问,怎样直接清空堆里的string值。有人建议直接用Dispose()方法;Dispose()销毁了对象,是一种垃圾回收机制。(这里
- 面向接口编程接口的定义及功能这里从java介入吧,在java中,接口是一种特殊的类,接口里面的量都是常量,接口的方法只有定义而没有实现,换句
- 本文实例为大家分享了Flutter实现顶部导航栏的具体代码,供大家参考,具体内容如下import 'package:flutter/
- 最近写到了一个秒杀的功能模块,为了保证高并 * 况下不会宕机,要从多方面去考虑,当前的限流操作只是其中的一个方面,具体操作如下。导入所需依赖&
- 前言本篇文章讲的是Kotlin 自定义view之实现标尺控件Ruler,以选择身高、体重等。开发中,当我们需要获取用户的身高和体重等信息时,
- 本文实例为大家分享了Java实现坦克大战小游戏的具体代码,供大家参考,具体内容如下创作背景:n年前的学期末课题设计,从b站上学的,一个代码一
- 使用java自带的Point类import java.awt.Point;//引用awt包下的Point类,此类的功能是表示 (x,y) 坐
- 报错信息如下:java: 无法访问org.springframework.boot.SpringApplication错误的类文件: /C:
- public static String getCharset(File file) { &n
- 1:查看是否有存储卡插入String status=Environment.getExternalStorageState();if(sta
- 前言:在多线程编程中,wait 方法是让当前线程进入休眠状态,直到另一个线程调用了 notify 或 notifyAll 方法之后,才能继续
- NO.1–注释在程序中,尤其是复杂的程序中,适当地加入注释可以增加程序的可读性,有利于程序的修改、调试和交流。注释的内容
- 本文实例为大家分享了Android读写文件工具类的具体代码,供大家参考,具体内容如下public class Utils { p
- 效果自定义密码输入框,项目的一个界面需求,我把这个自定义的输入框提取出来作为这次内容的题目。输入前: 输入后: 输入1个
- 最近公司要求开发工具要用Idea,作为一个eclipse的老员工,记录一下Idea中遇到的坑刚开始用Idea从Git上导入一个项目时,遇到了
- 大致流程客户端根据远程服务的地址,客户端发送请求至服务端,服务端解析信息并找到对应的实现类,进行方法调用,之后将调用结果原路返回,客户端解析
- C# 程序的通用结构C# 程序可由一个或多个文件组成。每个文件都可以包含零个或零个以上的命名空间。一个命名空间除了可包含其他命名空间外,还可
- Java 官网对Looper对象的说明:public class Looperextends ObjectClass used to run