List<DomainInfo> newData = new ArrayList<>(); for(DomainInfo info : data){ String subCode = info.getSystemCode(); if(subCode.contains(";")){ String[] code = subCode.split(";"); if(StringUtils.equals(dto.getSystemCode(), code[0])){ info.setSystemCode(StringUtils.isBlank(code[1]) ? "-" : code[1]); info.setChineseName(StringUtils.isBlank(info.getChineseName()) ? "空值" : info.getChineseName()); newData.add(info); } } } systemCode包含“30;” 解决报错问题
时间: 2024-02-14 19:08:52 浏览: 111
如果代码在检查 systemCode 包含 "30;" 时报错,可能是因为 StringUtils.equals() 方法比较时忽略了字符串中的空格,而传入的 systemCode 字符串中包含了空格。此时可以使用 trim() 方法去掉字符串中的空格后再进行比较,具体代码如下:
```java
List<DomainInfo> newData = new ArrayList<>();
for(DomainInfo info : data){
String subCode = info.getSystemCode();
if(subCode.contains(";")){
String[] code = subCode.split(";");
if(StringUtils.equals(dto.getSystemCode().trim(), code[0].trim())){
info.setSystemCode(StringUtils.isBlank(code[1]) ? "-" : code[1]);
info.setChineseName(StringUtils.isBlank(info.getChineseName()) ? "空值" : info.getChineseName());
newData.add(info);
}
}
}
```
在这里,使用 trim() 方法去掉传入的 systemCode 字符串和 subCode 拆分后的第一个部分中的空格,然后再进行比较。这样就能避免由于空格导致的比较错误。
阅读全文