当你拿到的报文是这样的

{"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,}
}

这一看就知道上边的报文在postman里边肯定会报错,因为exp_Content,因此他又没有用到,所以你想把他删掉。其实也没那么难删

也就是用到了流转字符串。字符串固定字符查找,然后进行字符串转字符流,删掉字符流中固定字符,之后再转回来。因为字符串已经是final了所以很多用法都是使用字符串转字符流实现的

实现代码如下

    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);}}

搞定。

多存在多个不符合规定的数据然后你要删掉怎么操作呢?
这也很简单,如果你看了这一篇文章,你要更好的解决方式,期待一起探讨,学习进步(^-^)V

你拿到的报文是这样的。

{"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,}
}

解决方式如下,先使用正则看看有几个这样的不需要的符号,然后循环遍历几次,然后找到这部分,然后删除掉。
实现代码如下

# 全局变量
private static String REGEX = "exp_[c,C]ontent";# 方式方法
Pattern p = Pattern.compile(REGEX);// 获取 matcher 对象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();}

end》》》
问题 = 机会。遇到问题的时候,内心其实是开心的,越大的问题意味着越大的机会。

JAVA删除字符串固定下标的字串相关推荐

  1. java 删除指定字符_字符串删除指定位置字符 JAVA 删除字符串中指定的字符

    <死侍2>有多不按套路出牌? 要CSS布局HTML小编今天和大家分享用到函数的调用. 编制函数fun,其功能是:删除一个字符串中指定的一.问题描述:从键盘输入一个字符串给str和一个字符给 ...

  2. C语言函数题- 删除字符串中下标为i的字符

    6-2 删除字符串中下标为i的字符 (10分) 本题要求实现一个函数,删除字符串中的下标为i的字符,i的值保证合法,即字符串一定存在下标为i的字符. 函数接口定义: void delstring ( ...

  3. Java实现 蓝桥杯 算法训练 字串统计

    算法训练 字串统计 时间限制:1.0s 内存限制:512.0MB 问题描述 给定一个长度为n的字符串S,还有一个数字L,统计长度大于等于L的出现次数最多的子串(不同的出现可以相交),如果有多个,输出最 ...

  4. Java删除字符串中指定字符的方法分享

    转自: Java如何删除字符串中指定字符呢? 字符串: 字符串主要用于编程,概念说明.函数解释.用法详述见正文,这里补充一点:字符串在存储上类似字符数组,所以它每一位的单个元素都是可以提取的,如s=& ...

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

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

  6. [Java] 蓝桥杯ALGO-58 算法训练 字串逆序

    问题描述 给定一个字符串,将这个串的所有字母逆序后输出. 输入格式 输入包含一个字符串,长度不超过100,字符串中不含空格. 输出格式 输出包含一个字符串,为上面字符串的逆序. 样例输入 tsinse ...

  7. java删除字符串最后一个字符

    substring方法 返回此字符串的子字符串.子字符串从指定的beginIndex开始并延伸到索引endIndex - 1 处的字符.因此子字符串的长度是endIndex-beginIndex. & ...

  8. java删除字符串中指定字符串_java:删除字符串中指定字符串的方法

    有些字符串是我们存储某种类型名称的,往往有逗号','或者其他符号来分隔.如果我们删除某一个参数时,往往没有数组或者列表那么方便.但是,如果有了下面这个方法,我们同样可以做好. public class ...

  9. java拼接字符串 判断内容_java--字符串拼接比较

    /** * 字符串拼接 */ public class StringAddDemo { public static void main(String[] args){ testStringAdd(); ...

最新文章

  1. 8.ubuntu下设置自定义快捷键
  2. DL之FCN:FCN算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
  3. MyBatisPlus条件构造器中last方法怎样使用
  4. voc_eval.py:41: RuntimeWarning: invalid value encountered in greater_equal if np.sum(rec = t) ==
  5. 51cto mysql下载_安装MySQL
  6. java非阻塞锁_Java并发问题的非阻塞解决方案
  7. 谁说互联网行业发展走到了尽头?
  8. 本地差分隐私 随机响应_本地化差分隐私:如何面对非可信的世界
  9. 中国浓缩咖啡机行业市场供需与战略研究报告
  10. 一文带你了解ARM的发展历程
  11. Windows实现快捷键熄屏功能
  12. 乖乖不得了,这款数字机器人竟然能够识别发票扫描信息!
  13. 你要记得那些大雨中为你撑伞的人,帮你挡住外来之物的人。。。——村上春树 2021.11.13日 早上11点
  14. Ubuntu 16.04 kinetic安装教程
  15. 奥比中光astra 摄像头采集深度图和RGB图像(小白版)
  16. MySQL存储引擎概叙
  17. 推荐几个黑白照片上色软件给大家
  18. 番外:win32k.sys什么情况下会挂上PTE
  19. ORACLE JOB无法自动执行
  20. 在Unity中获得一个物体的所有子物体包括孙物体。

热门文章

  1. 不要好高骛远,只做脚踏实地
  2. Android 使用百度导航SDK 2,并发编程挑战
  3. 服务器电脑无限重启,win10电脑蓝屏无限重启_网站服务器运行维护
  4. 薛定谔 | 分子药效团构建
  5. plantuml 依赖_plantuml语法
  6. html绘制城堡,搭 建 城 堡
  7. APM飞控板增加继电器控制
  8. Redhat Enterprise 4.3中静态编译perf
  9. java时差_Java中的时差
  10. Optimizer 优化器