每日一得

          不求多得,只求一得 about java,hibernate,spring,design,database,Ror,ruby,快速開發
          最近關心的內容:SSH,seam,flex,敏捷,TDD
          本站的官方站點是:顛覆軟件

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            220 隨筆 :: 9 文章 :: 421 評論 :: 0 Trackbacks
          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();
          ????????????????????}
          ????????????????}



          posted on 2006-07-03 18:31 Alex 閱讀(934) 評論(0)  編輯  收藏 所屬分類: java
          主站蜘蛛池模板: 满洲里市| 余江县| 三门县| 蒲城县| 西安市| 阿尔山市| 田阳县| 门头沟区| 杭州市| 忻城县| 贡嘎县| 陆川县| 浏阳市| 阜新| 松原市| 文登市| 思南县| 安福县| 峡江县| 金湖县| 闸北区| 沿河| 盐津县| 胶州市| 南陵县| 英吉沙县| 彩票| 汝南县| 高台县| 随州市| 丘北县| 进贤县| 介休市| 河池市| 清河县| 丹阳市| 安溪县| 永兴县| 吉首市| 县级市| 昭觉县|