wonderer's program

          everything will be better
          posts - 19, comments - 6, trackbacks - 0, articles - 0
            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          Java中的全角和半角

          Posted on 2007-12-23 16:46 wonderer 閱讀(1948) 評(píng)論(3)  編輯  收藏 所屬分類: java
          OYM中的任務(wù)中,有一項(xiàng)對(duì)文件內(nèi)容的檢查挺有意思的,就是要檢查字符是否是全角的,例如“GY”(not“GY”),并且把這些字符改為半角的。
          想起了在研發(fā)中心的一個(gè)朋友的抱怨:“昨天寫了一整天的程序,發(fā)到廣大教務(wù)處那邊居然說(shuō)不能用,然后親自跑了一躺,發(fā)現(xiàn)不是我的程序有問題,是那邊的人輸入個(gè)全角字符,搜半角的字符,當(dāng)然不行了”
          恩,Betty寫的需求真有意思,考慮的問題很周全,是一個(gè)很厲害的項(xiàng)目經(jīng)理。如果從輸入這里解決了字符是否是半角的,那么,以后的情況就容易解決很多了。恩,網(wǎng)上搜了一下資料,查了一下書,得出了以下代碼:
          public void testChar() {
            String s1 
          = "123";
            String s2 
          = "abc";
            String s3 
          = "123abc";
            System.out.println(s1);
            System.out.println(s2);
            System.out.println(s3);
            
          for (int i = 0; i < s1.length(); i++) {
             
          int j = s1.charAt(i);
             
          if (j > 256) {
              
          int temp = j - 65248;
              
          if (temp >= 0) {
               System.out.print((
          char)j+"-->:" + (char) temp);
              } 
          else {
                System.out.print((
          char) j);
              }
             } 
          else {
              System.out.print((
          char) j);
             }
            }
            System.out.println();
            
            
          for (int i = 0; i < s2.length(); i++) {
             
          int j = s2.charAt(i);
             
          if (j > 256) {
              
          int temp = j - 65248;
              
          if (temp >= 0) {
               System.out.print((
          char)j+"-->:" + (char) temp);
              } 
          else {
               System.out.print((
          char) j);
              }
             } 
          else {
              System.out.print ((
          char) j);
             }
            }
            System.out.println();
            
            
          for (int i = 0; i < s3.length(); i++) {
             
          int j = s3.charAt(i);
             
          if (j > 256) {
              
          int temp = j - 65248;
              
          if (temp >= 0) {
                System.out.print((
          char)j+"-->:" + (char) temp);
              } 
          else {
               System.out.print((
          char) j);
              }
             } 
          else {
              System.out.print((
          char) j);
             }
            }
            System.out.println();
           
           }
          輸出的結(jié)果如下:
          123
          -->ab-->bc--c
          123a
          -->ab-->bc--c



          評(píng)論

          # re: Java中的全角和半角  回復(fù)  更多評(píng)論   

          2007-12-23 17:12 by 黑蝙蝠
          樓主注釋下吧

          # re: Java中的全角和半角  回復(fù)  更多評(píng)論   

          2007-12-23 17:46 by beyond
          全角空格為12288,半角空格為32
          其他字符半角(33-126)與全角(65281-65374)的對(duì)應(yīng)關(guān)系是:均相差65248

          # re: Java中的全角和半角  回復(fù)  更多評(píng)論   

          2007-12-27 23:23 by wonderer
          @黑蝙蝠
          只是覺得代碼比較簡(jiǎn)單,所以沒注釋,呵呵,不過寫代碼還是養(yǎng)成好習(xí)慣的比較好。
          主站蜘蛛池模板: 杭锦旗| 宁乡县| 江北区| 富民县| 长垣县| 泌阳县| 扎赉特旗| 射洪县| 工布江达县| 房产| 忻城县| 澳门| 巢湖市| 绍兴市| 深水埗区| 长武县| 海晏县| 河池市| 双流县| 怀远县| 长泰县| 东阿县| 永安市| 嘉荫县| 微山县| 砀山县| 镇远县| 石屏县| 卢氏县| 鸡西市| 鹤庆县| 德兴市| 繁峙县| 田阳县| 南安市| 蓬莱市| 台前县| 嘉黎县| 扶风县| 思茅市| 中西区|