wonderer's program

          everything will be better
          posts - 19, comments - 6, trackbacks - 0, articles - 0
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          Java中的全角和半角

          Posted on 2007-12-23 16:46 wonderer 閱讀(1950) 評論(3)  編輯  收藏 所屬分類: java
          OYM中的任務中,有一項對文件內容的檢查挺有意思的,就是要檢查字符是否是全角的,例如“GY”(not“GY”),并且把這些字符改為半角的。
          想起了在研發中心的一個朋友的抱怨:“昨天寫了一整天的程序,發到廣大教務處那邊居然說不能用,然后親自跑了一躺,發現不是我的程序有問題,是那邊的人輸入個全角字符,搜半角的字符,當然不行了”
          恩,Betty寫的需求真有意思,考慮的問題很周全,是一個很厲害的項目經理。如果從輸入這里解決了字符是否是半角的,那么,以后的情況就容易解決很多了。恩,網上搜了一下資料,查了一下書,得出了以下代碼:
          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();
           
           }
          輸出的結果如下:
          123
          -->ab-->bc--c
          123a
          -->ab-->bc--c



          評論

          # re: Java中的全角和半角  回復  更多評論   

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

          # re: Java中的全角和半角  回復  更多評論   

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

          # re: Java中的全角和半角  回復  更多評論   

          2007-12-27 23:23 by wonderer
          @黑蝙蝠
          只是覺得代碼比較簡單,所以沒注釋,呵呵,不過寫代碼還是養成好習慣的比較好。
          主站蜘蛛池模板: 庄浪县| 连城县| 灌阳县| 常宁市| 华容县| 宜兴市| 呼玛县| 温宿县| 湘潭市| 枣强县| 会昌县| 定日县| 台北县| 南安市| 黑河市| 九江市| 平潭县| 绥滨县| 五家渠市| 新巴尔虎左旗| 金华市| 黑山县| 巧家县| 漯河市| 罗城| 晋宁县| 顺昌县| 水富县| 微山县| 临洮县| 汝州市| 晋宁县| 普兰店市| 黔江区| 桑日县| 沁源县| 绥滨县| 孙吴县| 铜陵市| 贵溪市| 双城市|