这几天做项目需要把多个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. DCL的失效:现实与初衷的背离

    最近看了Brian Goetz写的一篇有关DCL的文章:Double-checked locking: Clever, but broken.( 2001年发表于JavaWorld上) 这篇文章讲述了 ...

  2. TensorFlow 代码行统计

    https://github.com/tensorflow/tensorflow.git

  3. 字符串匹配KMP算法的C语言实现

    字符串匹配是计算机的基本任务之一. 举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD" ...

  4. K:java中序列化的两种方式—Serializable或Externalizable

    在java中,对一个对象进行序列化操作,其有如下两种方式: 第一种: 通过实现java.io.Serializable接口,该接口是一个标志接口,其没有任何抽象方法需要进行重写,实现了Serializ ...

  5. pinyin utils

    package cn.itcast.bos.utils;   import java.util.Arrays;   import net.sourceforge.pinyin4j.PinyinHelp ...

  6. IOC的总结

    今天趁着空闲总结一下自己IOC的一些理解,希望可以帮助到有需要的人,请大牛们多多指教. (一)IOC IOC就是控制反转,给程序解耦等等,有很多博客都对它做了一些很好的讲解.在这里我也不说太多文字,直 ...

  7. mac os x使用Git和bitbucket

    简而言之,Git是一个分布式的代码版本管理工具.类似的常用工具还有SVN,CVS. Git相比SVN,CVS,最大的特点也是优点在于提供分布式的代码管理.这不是说SVN等不具有该功能,但就目前来看,G ...

  8. 深入了解CSS字体度量,行高和vertical-align

    line-height和vertical-align在CSS中是两个简单的属性.如此简单,大多数人都相信自己已经完全理解它们是如何工作的以及如何使用它们.但事实上并不如此.他们其实很复杂,也是CSS中 ...

  9. Jenkins:基于linux构建ivy项目

    Jenkins:基于linux构建ivy项目 (二) 基于以上<Jenkins:VMware虚拟机Linux系统的详细安装和使用教程(一)>的配置再进行对ivy项目构建: 启动tomcat ...

  10. tensorflow mnist read_data_sets fails

    下载处理mnist数据时出现如下错误 VisibleDeprecationWarning: converting an array with ndim > 0 to an index will ...