隨筆 - 303  文章 - 883  trackbacks - 0
          <2007年8月>
          2930311234
          567891011
          12131415161718
          19202122232425
          2627282930311
          2345678

          歡迎光臨! 
          閑聊 QQ:1074961813

          隨筆分類(357)

          我管理的群

          公共blog

          • n維空間
          • Email : java3d@126.com 群 : 12999758

          參與管理的論壇

          好友的blog

          我的其他blog

          朋友的網(wǎng)站

          搜索

          •  

          最新評論

          我們知一個byte是代表一個ASCII,中文又兩個ASCII組成,現(xiàn)在我們有一個byte[]里面存放著任意的字符串,我們截取我想截取的數(shù);如果最后一個是半個中文,則去掉;
          代碼如下:

          測試代碼

          public class ByteTest {
              
          public static void main(String[] args) {
                  MyByte mybyte 
          = new MyByte();
                  mybyte.dochar(
          "你不a是a我aa誰?",3);
              }

          }

          處理代碼

          public class MyByte {

              
          public void dochar(String str, int count) {

                  
          byte[] temp = str.getBytes();
                  
          byte[] bArray = new byte[count * 2];

                  
          int i;
                  
          int ii = 0;// 用于判斷最后一個是不是一半漢字
                  String strc = "full";

                  
          for (i = 0; i < count; i++{
                      bArray[i] 
          = temp[i];
                  }

                  
          for (i = 0; i < count; i++{
                      
          if (bArray[i] < 0{
                          ii
          ++;
                      }

                  }

                  
          if (ii % 2 != 0{
                      strc 
          = "hard";
                  }


                  
          // 截下去為完全的時候
                  if (strc.equals("full"&& bArray[i] < 0{
                      bArray[i] 
          = ' ';
                  }

                  
          // 截下去為一半的時候
                  if (strc.equals("hard"&& bArray[i - 1< 0{
                      bArray[i 
          - 1= ' ';
                  }

                  System.out.println(
          new String(bArray).trim());
              }

          }



          地震讓大伙知道:居安思危,才是生存之道。
          posted on 2007-08-27 10:36 小尋 閱讀(1693) 評論(4)  編輯  收藏 所屬分類: j2se/j2ee/j2me

          FeedBack:
          # re: 在byte[]里截取中文 2007-08-28 13:26 幻想~@@~
          群里一個朋友寫處理類,更加簡單,值得學(xué)習(xí) 呵呵
          public void getChar(String str, int count) {    
                      
          byte[] byteArray = new byte[count];
                  
          byte[] temp = str.getBytes();
                  
          int ii=0;
                  
          for (int i = 0; i < count; i++{    
                      byteArray[i]
          =temp[i];
                      
                      
          if(temp[i]<0){
                          ii
          ++;                
                      }

                  }

                  
                  
          if(ii%2==1){
                      byteArray[count
          -1]=' ';
                  }

                  
                  

                  System.out.println(
          new String(byteArray).trim());

              }

            回復(fù)  更多評論
            
          # re: 在 byte[ ] 里截取中文 2008-11-22 18:24 sinfrancis
          有可能我是使用RandomAccessFile回頭讀取文件的呢
          可能出現(xiàn)第一個字節(jié)就是半個中文
          或者個第一個和最后一個都是半個漢字的情況 我該怎么判斷呢???
          謝謝 如有好的方法 告訴我一下 我的郵箱: kyowxf2003@163.com  回復(fù)  更多評論
            
          # re: 在 byte[ ] 里截取中文 2008-11-22 20:49 小尋

          在全是中文的情況下,你可以判斷該字符的前一個字符是不是空格。

            回復(fù)  更多評論
            
          # re: 在 byte[ ] 里截取中文[未登錄] 2012-02-29 14:18 test
          垃圾  回復(fù)  更多評論
            
          主站蜘蛛池模板: 清徐县| 江陵县| 烟台市| 屯昌县| 遂溪县| 克山县| 广灵县| 句容市| 塔河县| 泽州县| 东丽区| 绵竹市| 泰宁县| 甘肃省| 宜宾市| 宣化县| 雷波县| 乌兰察布市| 浙江省| 绥阳县| 漳平市| 乃东县| 根河市| 廉江市| 申扎县| 正定县| 安吉县| 青岛市| 犍为县| 泸西县| 沿河| 韩城市| 西乌| 岚皋县| 大厂| 正安县| 昭觉县| 德安县| 绥化市| 承德市| 石棉县|