這幾天做項目需要把多個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 }
?
基本就這樣了,如果有錯誤歡迎修改代碼,歡迎評論拍磚。