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();
????????????????????}
????????????????}