这几天做项目需要把多个item的id存储到一个字符串中,保存进数据库。保存倒是简单,只需要判断之前是否为空,如果空就直接添加,非空则拼接个“,”

所以这个字符串的数据结构是这样的 String str = "a,b,c,d";

保存简单了,那么删除指定元素呢?这就有点麻烦了,取网上查了好久,不是js的实现就是其他语言的,所以决心自己写个工具类,看了一上午,其中不乏有看不懂的demo(不是Java)。

这是测试时候写的,已经可以用了,如果不想引入工具类的话,可以复制到你的demo中,前提是字符串的结构和我之前具体相同

   public static String delStringElement(String strArray, String removeStr){
String[] stringArray = strArray.split(",");
List<String> list = new ArrayList<String>();
for (int i = 0; i < stringArray.length; i++) {
list.add(stringArray[i]);
}
list.remove(removeStr);
System.out.println(list);
int size = list.size();
String[] array = list.toArray(new String[size-1]);
String s = "";
for(int i=0;i<array.length;i++){
if (i == 0) {
s += array[i];
}else {
s += ","+array[i];
}
}
return s;
}

包装成工具类的:

 package utils;

 import java.util.ArrayList;
import java.util.List; import org.junit.Test; /**
*
* <p>Title: DelStringEle.java</p>
* <p>Description: 删除如:"a,b,c,d"这种格式的字符串中的不重复元素(如果重复会都删掉一个)
* 这个bug还没搞明白是怎么回事,有空更新一下[smile`]</p>
* <p>Copyright: Copyright (c) 2017</p>
* <p>Blog: http://www.cnblogs.com/hellxz/p/7568298.html</p>
* @author 东北小狐狸
* @date 2017年9月21日
* @version 1.0
*/
public class DelStringEle { @Test
public void justForTest(){
String str = "a,b,c,d,e,f,g,g";
delStringElement(str, "f");
}
public static String delStringElement(String strArray, String removeStr){
String[] stringArray = strArray.split(",");
List<String> list = new ArrayList<String>();
for (int i = 0; i < stringArray.length; i++) {
list.add(stringArray[i]);
}
list.remove(removeStr);
System.out.println(list);
int size = list.size();
String[] array = list.toArray(new String[size-1]);
String s = "";
for(int i=0;i<array.length;i++){
if (i == 0) {
s += array[i];
}else {
s += ","+array[i];
}
}
return s;
}
}

基本就这样了,如果有错误欢迎修改代码,欢迎评论拍砖。

【自制工具类】Java删除字符串中的元素的更多相关文章

  1. Java 删除ArrayList中重复元素,保持顺序

    // 删除ArrayList中重复元素,保持顺序          public static List<Map<String, Object>> removeDuplicat ...

  2. 005-guava 集合-集合工具类-java.util.Collections中未包含的集合工具[Maps,Lists,Sets],Iterables、Multisets、Multimaps、Tables

    一.概述 工具类与特定集合接口的对应关系归纳如下: 集合接口 属于JDK还是Guava 对应的Guava工具类 Collection JDK Collections2:不要和java.util.Col ...

  3. java 删除字符串中的反斜杠\

    Java中有时候会打印出来会含有反斜杠(\)的字符串,我们需要删除时,可以使用 replace() 或 replaceAll() 但是要注意的是replaceAll()里面用的是正则表达式,所以一个斜 ...

  4. java 删除字符串中的特定字符

    /** * Delete any character in a given String. * @param inString the original String * @param charsTo ...

  5. Java-Runoob-高级教程-实例-字符串:03. Java 实例 - 删除字符串中的一个字符

    ylbtech-Java-Runoob-高级教程-实例-字符串:03. Java 实例 - 删除字符串中的一个字符 1.返回顶部 1. Java 实例 - 删除字符串中的一个字符  Java 实例 以 ...

  6. java工具类之按对象中某属性排序

    import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang ...

  7. Java并发工具类CountDownLatch源码中的例子

    Java并发工具类CountDownLatch源码中的例子 实例一 原文描述 /** * <p><b>Sample usage:</b> Here is a pai ...

  8. 获取Spring容器中Bean实例的工具类(Java泛型方法实现)

    在使用Spring做IoC容器的时候,有的类不方便直接注入bean,需要手动获得一个类型的bean. 因此,实现一个获得bean实例的工具类,就很有必要. 以前,写了一个根据bean的名称和类型获取b ...

  9. 1231: 删除字符串中指定的字符(Java)

    WUSTOJ 1231: 删除字符串中指定的字符 题目 原题链接 Description 明天就要英语考试了,小明明正在挑灯夜战背单词.小明明发现单词很难背,背一个忘一个.经过仔细研究,小明明发现单词 ...

随机推荐

  1. CSS图片翻转动画技术详解

    因为不断有人问我,现在我补充一下:IE是支持这种技术的!尽管会很麻烦.需要做的是旋转front和back元素,而不是旋转整个容器元素.如果你使用的是最新版的IE,可以忽略这一节.IE10+是支持的,I ...

  2. SQLServer Agent执行[分发清除: distribution] 无法删除快照文件

    由于之前创建的发布订阅造成严重的性能压力,症状表现为发布订阅表查询产生CMEMTHREAD  suspend等待,由于开发配置每隔十分钟会产生大量的SQLCOMMAND(create table,cr ...

  3. SpringMVC PathVariable和post、get、put、delete请求

    1.PathVariable 可以映射URL中的占位符到目标方法的参数中. 2.Rest风格的URL 以CRUD为例: 新增:/order POST 修改:/order/id PUT 获取:/orde ...

  4. Java学习笔记14---this作为返回值时返回的是什么

    有时会遇到this作为返回值的情况,那么此时返回的到底是什么呢? 返回的是调用this所处方法的那个对象的引用,读起来有点绕口哈,有没有想起小学语文分析句子成份的试题,哈哈. 一点点分析的话,主干是& ...

  5. android散点技术

    1.怎么实现android虚拟按键(回退和回到主界面) android 中如何模拟back键 2.怎么用局域网的方式(wifi或是网线)来调试android机 参考资料: http://www.ith ...

  6. android开发文章收藏

    1.activity [Android的从零单排开发日记]之入门篇(四)——Android四大组件之Activity 两分钟彻底让你明白Android Activity生命周期(图文)! 2.serv ...

  7. C语言中处理结构体的原理

    汇编中有几种寻址方式,分别是直接寻址:(ds:[idata]).寄存器间接寻址(ds:[bx]).寄存器相对寻址(ds:[bx + idata].ds:[bx + si])基址变址寻址(ds:[bx ...

  8. Excel生成guid、uuid

    1.Excel生成guid,uuid  格式:600d65bc-948a-1260-2217-fd8dfeebb1cd =LOWER(CONCATENATE(DEC2HEX(RANDBETWEEN(, ...

  9. 大数据分析中Redis怎么做到220万ops

    大数据时代,海量数据分析就像吃饭一样,成为了我们每天的工作.为了更好的为公司提供运营决策,各种抖机灵甚至异想天开的想法都会紧跟着接踵而来!业务多变,决定了必须每天修改系统,重新跑数据,这就要求极高的海 ...

  10. #pta循环作业

    7-7 计算阶乘和 1.题目 . 2.设计思路     此题目比一道类似的经典题目的区别就是不是直接的数字累加而是每次的数字先累乘之后再累加 只需要在累加之前处理一下所要加的数字就可以实现了 3.流程 ...