【自制工具类】Java删除字符串中的元素

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

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

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

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

 1   public static String delStringElement(String strArray, String removeStr){
 2         String[] stringArray = strArray.split(",");
 3         List<String> list = new ArrayList<String>();
 4         for (int i = 0; i < stringArray.length; i++) {
 5             list.add(stringArray[i]);
 6         }
 7         list.remove(removeStr);
 8         System.out.println(list);
 9         int size = list.size();
10         String[] array = list.toArray(new String[size-1]);
11         String s = "";
12         for(int i=0;i<array.length;i++){
13             if (i == 0) {
14                 s += array[i];
15             }else {
16                 s += ","+array[i];
17             }
18         }
19         return s;
20     }

包装成工具类的:

 1 package utils;
 2 
 3 import java.util.ArrayList;
 4 import java.util.List;
 5 
 6 import org.junit.Test;
 7 
 8 /**
 9 * 
10 * <p>Title: DelStringEle.java</p>  
11 * <p>Description: 删除如:"a,b,c,d"这种格式的字符串中的不重复元素(如果重复会都删掉一个)
12 *                         这个bug还没搞明白是怎么回事,有空更新一下[smile`]</p>  
13 * <p>Copyright: Copyright (c) 2017</p>  
14 * <p>Blog: http://www.cnblogs.com/hellxz/p/7568298.html</p>  
15 * @author 东北小狐狸 
16 * @date 2017年9月21日  
17 * @version 1.0
18 */
19 public class DelStringEle {
20     
21     @Test
22     public void justForTest(){
23         String str = "a,b,c,d,e,f,g,g";
24         delStringElement(str, "f");
25     }
26     public static String delStringElement(String strArray, String removeStr){
27         String[] stringArray = strArray.split(",");
28         List<String> list = new ArrayList<String>();
29         for (int i = 0; i < stringArray.length; i++) {
30             list.add(stringArray[i]);
31         }
32         list.remove(removeStr);
33         System.out.println(list);
34         int size = list.size();
35         String[] array = list.toArray(new String[size-1]);
36         String s = "";
37         for(int i=0;i<array.length;i++){
38             if (i == 0) {
39                 s += array[i];
40             }else {
41                 s += ","+array[i];
42             }
43         }
44         return s;
45     }
46 }

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

原文地址:https://www.cnblogs.com/hellxz/p/7568298.html