java中去除excel里莫名其妙的空格

java 文章 2022-05-09 12:23 1006 0 全屏看文

AI助手支持GPT4.0

今天同事用excel导入了数据,系统提示了:

行: 3 列:7的金额数据必须是数字,当前值是【700 】

很明显700后多了个空格。

于是我加入了trim();

data = trimAnyBlank(data);
if (!StringUtil.isNumber(data)) {
	throw new ValidateBusinessException(Constant.SUB_SYSTEM, ErpExceptionType.VBE23005,
			"行: " + (rowIndex+1) + " 列:" + (columnIndex+1) + "的金额数据必须是数字,当前值是【"+data+"】\"");
}

结果还是相同的错误,于是我怀疑是制表符 \t

然后用正则替换\t 发现还是替换不掉。

最后用了一个特殊的替换方法。不过依赖了Guava包

public static String trimAnyBlank(String str) {
	  if (null != str) {
		return CharMatcher.anyOf("\r\n\t \u00A0 ‭").trimFrom(str);
	  }
	  return str;
}

终于替换掉了。

hutool群里的大佬对我说了一句话,

image.png

估计就这个原因造成的。

-EOF-

AI助手支持GPT4.0