小石頭
          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

          關(guān)于全角轉(zhuǎn)半角的問題,在Unicode中,標(biāo)點(diǎn)、數(shù)字、字母的半角編碼最高位均為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);


          ?}

          //半角轉(zhuǎn)全角
          ? 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;
          ? }
          ?

          //全角轉(zhuǎn)半角
          ? 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;
          ? }

          }

          輸出結(jié)果為:

          HELLO
          HELLO
          HELLO
          HELLO

          ?


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

          ?

          posted on 2007-01-16 23:10 小石頭 閱讀(618) 評(píng)論(0)  編輯  收藏 所屬分類: 我的java學(xué)習(xí)
          主站蜘蛛池模板: 那曲县| 班戈县| 东乡县| 托里县| 翼城县| 连山| 邓州市| 长乐市| 乐业县| 新郑市| 贵州省| 沂水县| 罗山县| 云安县| 龙陵县| 库伦旗| 喀喇沁旗| 上蔡县| 弋阳县| 沁阳市| 丽水市| 樟树市| 梨树县| 朝阳县| 大同市| 虎林市| 金平| 谢通门县| 洛扎县| 鄂伦春自治旗| 南宁市| 丰台区| 顺昌县| 怀来县| 清流县| 合作市| 大同县| 蛟河市| 哈尔滨市| 开阳县| 崇左市|