Java之JsonArray用法講解
需求:
四個(gè)字符串: "[\"HDC-51\"]", "[\"HDC-51\", \"HDC-55\"]", "[\"HDC-50\", \"HDC-55\", \"HDC-55-2\"]", "[\"HDC-51\", \"HDC-55\", \"HDC-55-2\",\"HDC-21N\"]", 分別向四個(gè)字符串中添加String macType ="HDC-50" , 并判斷字符串中各個(gè)元素是否與macType相同, 相同則不添加, 不相同則添加. 最后輸出四個(gè)字符串,要求格式同開始字符串格式一致.
思路:
這是不是普通的字符串, 而是json格式的字符串, 所以在判斷的時(shí)候, 可以選擇將多個(gè)字符串轉(zhuǎn)成jsonArray格式
延伸:
通常我們在數(shù)據(jù)庫中, 一個(gè)字段存儲多個(gè)字符串的數(shù)據(jù), 一般以json格式存入, 更新數(shù)據(jù)的時(shí)候,使用jsonArray轉(zhuǎn)化更方便
方法一: 普通方式,不使用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中是否已經(jīng)包含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); } } }
結(jié)果:
方法二: 使用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(); } } } }
控制臺輸出:
到此這篇關(guān)于Java之JsonArray用法講解的文章就介紹到這了,更多相關(guān)Java之JsonArray用法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java創(chuàng)建數(shù)組的3種方式代碼舉例
數(shù)組是相同類型數(shù)據(jù)的有序集合,數(shù)組描述的是若干個(gè)相同類型的數(shù)據(jù)按照一定的先后次序排列組合而成,其中每一個(gè)數(shù)據(jù)稱為數(shù)組的元素,可以通過下標(biāo)進(jìn)行訪問,這篇文章主要給大家介紹了關(guān)于Java創(chuàng)建數(shù)組的3種方式,需要的朋友可以參考下2024-01-01Java中遍歷數(shù)組使用foreach循環(huán)還是for循環(huán)?
這篇文章主要介紹了Java中遍歷數(shù)組使用foreach循環(huán)還是for循環(huán)?本文著重講解for語句的語法并給出使用實(shí)例,同時(shí)總結(jié)出盡量使用foreach語句遍歷數(shù)組,需要的朋友可以參考下2015-06-06Java二維數(shù)組查找功能代碼實(shí)現(xiàn)
這篇文章主要介紹了Java二維數(shù)組查找功能代碼實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06解決報(bào)錯:java.lang.IllegalStateException: Failed to&nb
在項(xiàng)目開發(fā)中,可能會遇到Elasticsearch啟動報(bào)錯的問題,原因可能包括版本不一致、端口配置錯誤、配置文件不匹配及服務(wù)未啟動等,解決方法包括檢查進(jìn)程、重啟服務(wù)等,這些經(jīng)驗(yàn)可以幫助開發(fā)者快速定位問題并解決,保證項(xiàng)目順利運(yùn)行2024-10-10SpringCloud feign服務(wù)熔斷下的異常處理操作
這篇文章主要介紹了SpringCloud feign服務(wù)熔斷下的異常處理操作,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-06-06