key words: 切割字符串 切割中文字符 DecimalFormat 格式化字符 科学计数法
一.切割字符串的前几个字符在首页,有时候会因为table列表里的某个内容比较长而使得页面撑得很难看,一般做法就是截取前几个字符
/**
* 截取前几个字符串
* @param src 被截取的字符
* @param num 截取的长度
* @param append 附加的字符
* @return String
*/
public static String splitStr(String src, int num, String append) {
if (null == src || num < 0) return "";
if (src.length() < num) return src;
char[] rtnChar = src.toCharArray();
StringBuffer sb = new StringBuffer();
for (int i = 0; i < num; i++) {
sb.append(rtnChar[i]);
}
sb.append(append);
return sb.toString();
}
toCharArray会把一个汉字当作一个char(java中一个char两个字节)二.用DecimalFormat格式化字符这次用POI读取Excel碰到的一个问题,即,如果Excel里的格式不同,比如同样的20060623,有可能是字符型的格式,也可能是普通数字型的,而且在数字型的时候如果比较长会给你返回科学计数法的格式,如:2.002623E7,而这个不是我希望出现的,所以后来只好碰到这种格式的就自己给转换一下:
if (null != row.getCell((short) i)) {
switch (row.getCell((short) i).getCellType()) {
case HSSFCell.CELL_TYPE_FORMULA :
strExcelLine[i] = "FORMULA ";
break;
case HSSFCell.CELL_TYPE_NUMERIC :
strExcelLine[i] = String.valueOf(row.getCell((short) i).getNumericCellValue());
break;
case HSSFCell.CELL_TYPE_STRING :
strExcelLine[i] = row.getCell((short) i).getStringCellValue();
break;
case HSSFCell.CELL_TYPE_BLANK :
strExcelLine[i] = "";
break;
default :
strExcelLine[i] = "";
break;
}
//如果读取的是科学计数法的格式,则转换为普通格式
//added by Alex at 20060626
if(null != strExcelLine[i] &&
strExcelLine[i].indexOf(".") != -1 &&
strExcelLine[i].indexOf("E") != -1){
DecimalFormat df = new DecimalFormat();
strExcelLine[i] = df.parse(strExcelLine[i]).toString();
}
}