需要一个全角英文和半角英文的对应表吧?
还要一个字符一个字符的去判断吧?主要因为ms sql这东西,把"BBS"和"BBS"认为是同一个字符串,有办法让mssql不这么识别嘛?
或者全角替换半角的最优办法是什么呢?

解决方案 »

  1.   

    /**
     * 完成全半角的相互转换
     * 输入  hello!! ,,DAO
     * 输出  hello!! ,,DAO
     *//**
     * 全角和半角差别:
     *     b [0] [1]   [2]   [3]
     * 全:    a   b    c+32   0
     * 半:    a   b    c     -1
     */public class change
    {
        public static void main(String[] args)
        {
            String QJstr = "hello!! ,,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;
        }}