Java之JsonArray用法講解

需求:

四個字符串:
	 "[\"HDC-51\"]",
	"[\"HDC-51\", \"HDC-55\"]",
	"[\"HDC-50\", \"HDC-55\", \"HDC-55-2\"]",
	"[\"HDC-51\", \"HDC-55\", \"HDC-55-2\",\"HDC-21N\"]",
分別向四個字符串中添加String macType ="HDC-50" ,
並判斷字符串中各個元素是否與macType相同, 相同則不添加, 不相同則添加.
最後輸出四個字符串,要求格式同開始字符串格式一致.

思路:

這是不是普通的字符串, 而是json格式的字符串,
所以在判斷的時候, 可以選擇將多個字符串轉成jsonArray格式

延伸:

通常我們在數據庫中, 一個字段存儲多個字符串的數據, 一般以json格式存入,
更新數據的時候,使用jsonArray轉化更方便

方法一: 普通方式,不使用jsonArray

	public class Test {
  	  public static void main(String[] args) {
  	  
		List<String> contentList = new ArrayList<>();
        contentList.add("[\"HDC-51\"]");
        contentList.add("[\"HDC-51\", \"HDC-55\"]");
        contentList.add("[\"HDC-50\", \"HDC-55\", \"HDC-55-2\"]");
        contentList.add("[\"HDC-51\", \"HDC-55\", \"HDC-55-2\",\"HDC-21N\"]");
        System.out.println(contentList);
        String macType ="HDC-50";    

		for (String content : contentList) {
            
            //去掉content 中的中括號
            String contentStr1 = content.replaceAll("[\\[\\]]", "");
            List<String> content1= Arrays.asList(contentStr1.split(","));
            
            List<String> list = new ArrayList<>();

            for (String string : content1) {
                list.add(string);
            }
            
            //判斷content中是否已經包含macType
            boolean flag = false;
            for (String string : list) {
              //去掉字符串的引號
                String str= string.replace("\"", "");
                if (macType.equals(str)) {
                   flag = true; 
                   break;
                }        
            }
            
            //如果沒有macType,則添加
            if (flag == false) {
                StringBuilder sb = new StringBuilder();
                String macTypeStr = sb.append("\"").append(macType).append("\"").toString();
                list.add(macTypeStr);            
            }
            
            String newContent = list.toString();
            System.out.println(newContent);
        
        }            
  	  }
 	}

結果:

在這裡插入圖片描述

方法二: 使用JsonArray

	public class Test {
  	  public static void main(String[] args) {
  	  
		List<String> contentList = new ArrayList<>();
        contentList.add("[\"HDC-51\"]");
        contentList.add("[\"HDC-51\", \"HDC-55\"]");
        contentList.add("[\"HDC-50\", \"HDC-55\", \"HDC-55-2\"]");
        contentList.add("[\"HDC-51\", \"HDC-55\", \"HDC-55-2\",\"HDC-21N\"]");
        System.out.println(contentList);
        String macType ="HDC-50";    

		for (String content : contentList) {
            
            try {
                JSONArray contentArray = JSONArray.parseArray(content);
                
                //System.out.println("contentArray前 : " + contentArray);
                if (!contentArray.contains(macType)) {
                    contentArray.add(macType);
                }
                System.out.println("contentArray後 : " + contentArray);
            } catch (Exception e) {
              
                e.printStackTrace();
            }
        }            
  	  }
 	}
			

控制臺輸出:

在這裡插入圖片描述

到此這篇關於Java之JsonArray用法講解的文章就介紹到這瞭,更多相關Java之JsonArray用法內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: