Java 一些异常报错、注意事项(2)

本文记录了Java编程中关于JSON排序、字符串split方法的使用及SLF4J日志配置的注意事项。针对JSONObject的有序输出,可以使用LinkedHashMap。在split方法中,为处理连续空格不被分割的问题,需添加'-1'参数。另外,SLF4J日志配置可设置文件最大大小、名称及保留天数。遇到导入包错误但Maven引用无误的情况,尝试运行'mvn idea:module'命令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

记录一:JSON排序

JsonObject内部是用Hashmap来存储的,所以输出是按key的排序来的,如果要让JsonObject按固定顺序(put的顺序)排列,可以修改JsonObject的定义HashMap改为LinkedHashMap

LinkedHashMap<String, Object> jsonMap = JSON.parseObject(json,LinkedHashMap.class, Feature.OrderedField);
JSONObject jsonObject = new JSONObject(true);
jsonObject.putAll(jsonMap);
System.out.println(jsonObject.toString());

记录二:split分割字符串

java 中用split分割字符串,最后的空格等不被拆分。

在使用java中的split按照“\t”,拆分字符串的时候,发现如果最后的几个字段是空,只是用\t分割,是连着的\t的话,就不会被分割,如 “d\tc\te\t\t\t”最后的几个\t就不会被分割,应该是在拆分之前对字符串进行了处理。导致的拆分字段个数错误。查了一下APi,需要在split中添加参数-1,String[] values = line.split("\t",-1); imit 参数控制应用模式的次数,从而影响结果数组的长度

如果限制 n 大于零,那么模式至多应用 n> - 1 次,数组的长度不大于 n,并且数组的最后条目将包含除最后的匹配定界符之外的所有输入

如果 n 非正,那么将应用模式的次数不受限制,并且数组可以为任意长度

如果 n 为零,那么应用模式的次数不受限制,数组可以为任意长度,并且将丢弃尾部空字符串 (就是这个原因)

添加上参数-1之后,就正常了。

记录三:slf4日志配置大小和存储时间限制

logging:
  level:
    root: info
  file:
	max-size: 200MB
    name: log/${spring.application.name}.log
    max-history: 5
    total-size-cap: 2048MB

记录四:出现 程序包不存在,实际maven引用无误,Error:(3, 13) java: 程序包feign不存在

解决方法:在项目根目录【open in Terminal】,输入

mvn idea:module

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值