每日一得

          不求多得,只求一得 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
          主站蜘蛛池模板: 柳河县| 隆回县| 迁安市| 南岸区| 彭山县| 东辽县| 兰州市| 弥渡县| 天等县| 庆安县| 轮台县| 湟中县| 普安县| 邹平县| 岚皋县| 虎林市| 贵南县| 沿河| 周宁县| 宣恩县| 白朗县| 桑植县| 荔波县| 呼图壁县| 静海县| 辽阳县| 和平区| 晋城| 外汇| 两当县| 鹤山市| 咸丰县| 遵化市| 南阳市| 肥西县| 桃园县| 宁远县| 贡嘎县| 景泰县| 商河县| 长寿区|