小石頭
          Excellence in any department can be attained only by the labor of a lifetime; it is not to be purchased at a lesser price.
          posts - 91,comments - 22,trackbacks - 0

          關于全角轉半角的問題,在Unicode中,標點、數字、字母的半角編碼最高位均為0,它們的全角編碼與半角編碼的第三位相差32h。

          public class Test
          {
          ?public static void main(String [] args)
          ?{
          ? String QJstr="HELLO";
          ? String QJstr1="HELLO";
          ????
          ???? String result=BQchange(QJstr);
          ???? String result1=QBchange(QJstr1);
          ???
          ????? System.out.println(QJstr+"\n"+result);
          ????? System.out.println(QJstr1+"\n"+result1);


          ?}

          //半角轉全角
          ? public static final String BQchange(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]=-1;
          ???????? try
          ???????? {??????
          ?????????? outStr=outStr+new String(b,"unicode");
          ???????? }
          ???????? catch(java.io.UnsupportedEncodingException e)
          ???????? {
          ????????? e.printStackTrace();
          ???????? }?????
          ?????? }
          ?????? else outStr=outStr+Tstr;
          ???? }
          ???
          ???? return outStr;
          ? }
          ?

          //全角轉半角
          ? public static final String QBchange(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;
          ? }

          }

          輸出結果為:

          HELLO
          HELLO
          HELLO
          HELLO

          ?


          Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=496423

          ?

          posted on 2007-01-16 23:10 小石頭 閱讀(613) 評論(0)  編輯  收藏 所屬分類: 我的java學習
          主站蜘蛛池模板: 沧州市| 湖北省| 紫阳县| 固安县| 囊谦县| 保定市| 灌云县| 丘北县| 曲麻莱县| 乐陵市| 巴青县| 娱乐| 连南| 贡山| 晋宁县| 昭苏县| 昌宁县| 上林县| 扬中市| 黔南| 康乐县| 若羌县| 甘洛县| 南乐县| 太仓市| 白沙| 垦利县| 土默特右旗| 吉林市| 定州市| 黄石市| 长白| 宁波市| 洪江市| 芦山县| 宁强县| 扎兰屯市| 漯河市| 城口县| 景洪市| 卢龙县|