您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“JAVA如何刪除字符串固定下標(biāo)字串”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“JAVA如何刪除字符串固定下標(biāo)字串”吧!
當(dāng)你拿到的報(bào)文是這樣的
{ "input": { "sdfsn": "23u4209350-2", "fsfs": "128412094", "sgsgsg": "15821059", "inssgsuplc_admdfdfdvs": "125125332", "dgh": "125215312", "dfgdfg": "215215", "sdhdsh": "", "sdfsn": "", "shdfshdshdsh": "shsdh", "sdhdsh": "shsh.0", "shsdhsd": "1", "shsdh": "1607", "input": { "data": { "dhfsdhsd": "235325", "shsdhsdh": "03", "dgd": "BE0445360", "dfhfdh": "11", "dshshsd": 76.56, "ghjrfgj": "01", "grjf": "234623626", "hjfd": "236436", "djfdfgjdfj": "45634", "exp_Content": "{"gdsg":"01","gjfj":"658568","fjfj":"5675467","ghfjfgkj":"68568","vmgfvj":"658568","gfhjgfyk":"0","fghkfghkg":"5474567"}", "dfjgdfj": "", "dfjdfjgdfj": "56745745", "dfgjdfgjh": 45756758, "jdfgjhfdgj": 0, } } }, "output": { "output": { "r757": { "dhfsdhsd": "235325", "shsdhsdh": "03", "dgd": "BE0445360", "dfhfdh": "11", "dshshsd": 76.56, "ghjrfgj": "01", "grjf": "234623626", "hjfd": "236436", "djfdfgjdfj": "45634", "exp_content": "", "dfjgdfj": "", "dfjdfjgdfj": "56745745", "dfgjdfgjh": 45756758, "jdfgjhfdgj": 0, }, "sdfgsdfg": [ { "sgasgag": "4673476", "agasgdas": 5675467, "asgasgasg": "", "asdgasgas": 4567456754, "dhsdsxchsdh": 54675467, "sdfhsdhsdh": "5674756457" } ] }, "erherth": 0, } }
這一看就知道上邊的報(bào)文在postman里邊肯定會(huì)報(bào)錯(cuò),因?yàn)閑xp_Content,因此他又沒有用到,所以你想把他刪掉。其實(shí)也沒那么難刪
也就是用到了流轉(zhuǎn)字符串。字符串固定字符查找,然后進(jìn)行字符串轉(zhuǎn)字符流,刪掉字符流中固定字符,之后再轉(zhuǎn)回來(lái)。因?yàn)樽址呀?jīng)是final了所以很多用法都是使用字符串轉(zhuǎn)字符流實(shí)現(xiàn)的
private JSONObject resolveApplicationJson(HttpServletRequest request) { InputStream is = null; String json = null; try { is = request.getInputStream(); json = IOUtils.toString(is, "UTF-8"); json=json.replaceAll("\\r|\n|\t",""); int index= json.indexOf("exp_Content"); int indexfirst=json.indexOf("{", index); int indexlast=json.indexOf("}",index); if (index!=-1 && indexlast !=-1 &&indexfirst !=-1) { StringBuffer stringBuffer = new StringBuffer(json); stringBuffer.delete(indexfirst,indexlast+1); json=stringBuffer.toString(); } } catch (IOException e) { throw new RuntimeException("CANNOT get reader from request!", e); } finally { if (is != null) { try { is.close(); } catch (IOException e) { e.printStackTrace(); } } } try { return new JSONObject(json); } catch (JSONException e) { throw new RuntimeException("CANOT CONVET JSON:[" + json + "] to JSONObject!", e); } }
當(dāng)你拿到的報(bào)文是這樣的。
{ "input": { "sdfsn": "23u4209350-2", "fsfs": "128412094", "sgsgsg": "15821059", "inssgsuplc_admdfdfdvs": "125125332", "dgh": "125215312", "dfgdfg": "215215", "sdhdsh": "", "sdfsn": "", "shdfshdshdsh": "shsdh", "sdhdsh": "shsh.0", "shsdhsd": "1", "shsdh": "1607", "input": { "data": { "dhfsdhsd": "235325", "shsdhsdh": "03", "dgd": "BE0445360", "dfhfdh": "11", "dshshsd": 76.56, "ghjrfgj": "01", "grjf": "234623626", "hjfd": "236436", "djfdfgjdfj": "45634", "exp_Content": "{"gdsg":"01","gjfj":"658568","fjfj":"5675467","ghfjfgkj":"68568","vmgfvj":"658568","gfhjgfyk":"0","fghkfghkg":"5474567"}", "dfjgdfj": "", "dfjdfjgdfj": "56745745", "dfgjdfgjh": 45756758, "jdfgjhfdgj": 0, } } }, "output": { "output": { "r757": { "dhfsdhsd": "235325", "shsdhsdh": "03", "dgd": "BE0445360", "exp_Content": "{"gdsg":"01","gjfj":"658568","fjfj":"5675467","ghfjfgkj":"68568","vmgfvj":"658568","gfhjgfyk":"0","fghkfghkg":"5474567"}", "dfhfdh": "11", "dshshsd": 76.56, "ghjrfgj": "01", "grjf": "234623626", "hjfd": "236436", "djfdfgjdfj": "45634", "exp_content": "{"gdsg":"01","gjfj":"658568","fjfj":"5675467","ghfjfgkj":"68568","vmgfvj":"658568","gfhjgfyk":"0","fghkfghkg":"5474567"}", "dfjgdfj": "", "dfjdfjgdfj": "56745745", "dfgjdfgjh": 45756758, "jdfgjhfdgj": 0, }, "sdfgsdfg": [ { "sgasgag": "4673476", "agasgdas": 5675467, "asgasgasg": "", "asdgasgas": 4567456754, "dhsdsxchsdh": 54675467, "sdfhsdhsdh": "5674756457" } ] }, "erherth": 0, } }
解決方式如下:根據(jù)需要寫出正則表達(dá)式,再使用正則看看有幾個(gè)這樣的不需要的符號(hào),然后循環(huán)遍歷幾次,之后找到這部分,最后刪除掉。
# 全局變量 private static String REGEX = "exp_[c,C]ontent"; # 方式方法 Pattern p = Pattern.compile(REGEX); // 獲取 matcher 對(duì)象 Matcher m = p.matcher(JSON); List<Integer> list = new ArrayList(); while(m.find()){ list.add(m.start()); } int index=0; int indexfirst=0; int indexlast=0; for (int j = 0; j < list.size(); j++) { index=JSON.indexOf("exp_",indexlast); indexfirst=JSON.indexOf("{", index); indexlast=JSON.indexOf("}",index); StringBuffer stringBuffer =null; if (indexlast !=-1 &&indexfirst !=-1) { stringBuffer = new StringBuffer(JSON); stringBuffer.delete(indexfirst,indexlast+1); } JSON=stringBuffer.toString(); }
到此,相信大家對(duì)“JAVA如何刪除字符串固定下標(biāo)字串”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。