一、问题背景
在web项目中,根据用户需求加入了导入Excel表格数据的功能,由于用户整理Excel数据时经常在数据前后加了一些空格,
导入到程序中并保存到数据库中,显示问号(也可能是其它乱码),使用了String字符串中的trim()方法还是不能去掉空格乱码
二、解决方法。
先查看了trim()方法源码,发现JAVA去将字符串截成char数组,然后一个个char循环去跟‘ ’比大小(这里是ASCll码作对比)。
而POI导入的空格ASCll码值经过查看是:160,空格(Space)的ASCll码值是:32。所以POI的空格不能用trim(),需要特殊处理。
str为Excel导入的表格数据
//自定义一个正则表达式,去掉Excel中的空格,即可
String cellValue = str.replaceAll("[\\s\\u00A0]+","").trim();