posts - 73,  comments - 55,  trackbacks - 0
          /*
          ?*?題目:
          ?*?編寫一個(gè)截取字符串的函數(shù),輸入為一個(gè)字符串和字節(jié)數(shù),輸出為按字節(jié)截取的字符串。?但是要保證漢字不被截半個(gè),如“我ABC”4,應(yīng)該截為“我AB”,輸入“我ABC漢DEF”,6,應(yīng)該輸出為“我ABC”而不是“我ABC+漢的半個(gè)”。?
          ?*?
          ?*?解釋:
          ?*?此處的編碼方式應(yīng)該是操作系統(tǒng)默認(rèn)的GB編碼,即漢字占2個(gè)字節(jié)且第一個(gè)字節(jié)的最高位是1,
          ?*?如果理解為有符號(hào)數(shù)的話,就是負(fù)數(shù);而英文占1個(gè)字節(jié),符合ASC2碼。
          ?
          */

          class ?SplitString?
          {
          ?
          private ?String?str;
          ?
          private ? int ?byteNum;

          ?
          public ?SplitString() {}

          ?
          public ?SplitString(String?str, int ?byteNum)
          ?
          {
          ??
          this .str = str;
          ??
          this .byteNum = byteNum;

          ?}

          ?
          ?
          public ? void ?splitIt()
          ?
          {

          ??
          byte ?bt[] = str.getBytes();
          ??System.out.println(
          " Length?of?this?String?===> " + bt.length);
          ??
          if (byteNum >= 1 )
          ??
          {
          ???
          if (bt[byteNum] < 0 )
          ???
          {
          ????String?substrx
          = new ?String(bt, 0 , -- byteNum);
          ????System.out.println(substrx);
          ???}
          else
          ???
          {
          ????String?substrex
          = new ?String(bt, 0 ,byteNum);
          ????System.out.println(substrex);
          ???}

          ??}
          else
          ??
          {?
          ???System.out.println(
          " 輸入錯(cuò)誤!!!請(qǐng)輸入大于零的整數(shù): " );
          ??}

          ?}

          }


          public ? class ?TestSplitString
          {
          ?
          public ? static ? void ?main(String?args[])
          ?
          {
          ??String?str
          = " 我ABC漢DEF " ;
          ??
          int ?num = 6 ;
          ??SplitString?sptstr?
          = ? new ?SplitString(str,num);
          ??sptstr.splitIt();
          ?}

          }
          posted on 2007-03-06 17:17 保爾任 閱讀(1700) 評(píng)論(1)  編輯  收藏 所屬分類: Arithmetic & Data Structure

          FeedBack:
          # re: java用字節(jié)數(shù)截取字符串[未登錄]
          2011-08-26 14:44 | dj
          f (bt[byteNum] < 0 )
          {
          String substrx = new String(bt, 0 , -- byteNum);
          System.out.println(substrx);
          }
          //這樣寫,存在bug,如果,比如 “中國(guó)人”,6, 按你這樣,得到的結(jié)果就是“中國(guó)?”  回復(fù)  更多評(píng)論
            

          <2007年3月>
          25262728123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          常用鏈接

          留言簿(4)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 肃宁县| 湘阴县| 南通市| 神农架林区| 建湖县| 红原县| 元氏县| 于都县| 砚山县| 咸阳市| 北京市| 张家口市| 龙江县| 临安市| 瑞昌市| 和平县| 陆良县| 合江县| 洞口县| 洛宁县| 绥芬河市| 阿拉善左旗| 天祝| 陕西省| 九龙县| 翁源县| 曲阳县| 湛江市| 宝清县| 得荣县| 鄂托克旗| 绵阳市| 安平县| 大悟县| 曲松县| 亳州市| 安福县| 东阿县| 西峡县| 黔江区| 汉寿县|