乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      - 好山,好水,好人家——鄧鵬的bolg

       accesine 2005-08-25

      最近一段時間,因為正在研究全文檢索,所以遇到了很多問題。首先就是怎樣對文章進行差別處理,這種差別在中文中尤其明顯,例如:標點,數(shù)字、字母的全半角問題等。

      我在網(wǎng)上查找了一些關(guān)于全半角轉(zhuǎn)換的代碼,但可惜只有C#(因為整個系統(tǒng)需要考慮移植的問題,所以計劃用JAVA實現(xiàn)),不過,有總比沒有好,仔細研究了一下算法,感覺用JAVA實現(xiàn)也很簡單,所以就產(chǎn)生今天這篇文檔,希望可以為今后的工作提供參考。

      進入主題>>

      1、首先,需要知道的是中文編碼的種類,有:GB2312 、GBK、Unicode、UTF8、BIG5等?,F(xiàn)在大多數(shù)的應(yīng)用軟件都采用Unicode編碼,在JAVA的內(nèi)部也是如此。所以關(guān)于上述問題,只需要對字符的Unicode編碼進行一個相應(yīng)的處理就可以解決。

      2、下面說明一下Unicode編碼,該編碼采用雙字節(jié)編碼方式,對所有字符,都采用2個字節(jié)編碼,即4byte,這點很重要,我們只需要對這4byte進行處理就可以完成相應(yīng)字符的轉(zhuǎn)換了。另外在Unicode編碼中,標點、數(shù)字、字母的編碼與漢字的編碼在最高位會有明顯區(qū)別。有興趣可以參看Unicode 編碼表

      3、關(guān)于全角轉(zhuǎn)半角的問題,在Unicode中,標點、數(shù)字、字母的半角編碼最高位均為0,它們的全角編碼與半角編碼的第三位相差32h。

      根據(jù)上面的結(jié)論,實現(xiàn)的全角轉(zhuǎn)半角的JAVA代碼如下,至于半角轉(zhuǎn)全角,加變減就成了:

      public class change {
          
          public static void main(String[] args) {
          
           String QJstr="hello!! 全角轉(zhuǎn)換,DAO";
           
           String result=SBCchange(QJstr);
          
           System.out.println(QJstr+"\n"+result);
        
       }
       
       
       public static final String SBCchange(String QJstr)
       {
           String outStr="";
           String Tstr="";
           byte[] b=null;

           for(int i=0;i<QJstr.length();i++)
           {     
            try
            {
             Tstr=QJstr.substring(i,i+1);
             b=Tstr.getBytes("unicode");
            }
            catch(java.io.UnsupportedEncodingException e)
            {
             e.printStackTrace();
            }     
         
            if (b[3]==-1)
            {
             b[2]=(byte)(b[2]+32);
             b[3]=0;      
              
             try
             {       
              outStr=outStr+new String(b,"unicode");
             }
             catch(java.io.UnsupportedEncodingException e)
             {
              e.printStackTrace();
             }      
            }else outStr=outStr+Tstr;
           }
          
           return outStr; 
        }

       }
      原帖來自于網(wǎng)易社

      另外感覺C#與JAVA在字符處理方面的差別比較大,不知道是不是我的理解有問題,改天得好好看看。

      至于其它編碼,以后有時間再想吧,腦子有點疼了。。。

      相關(guān)鏈接:

                 C#里面全角和半角的自由轉(zhuǎn)換 av

                 Unicode 編碼表

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多