stringutility.java

来自「开源项目CRM之OpenCustomer」· Java 代码 · 共 77 行

JAVA
77
字号
/*******************************************************************************
 * ***** BEGIN LICENSE BLOCK Version: MPL 1.1
 * 
 * The contents of this file are subject to the Mozilla Public License Version
 * 1.1 (the "License"); you may not use this file except in compliance with the
 * License. You may obtain a copy of the License at http://www.mozilla.org/MPL/
 * 
 * Software distributed under the License is distributed on an "AS IS" basis,
 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
 * the specific language governing rights and limitations under the License.
 * 
 * The Original Code is the OpenCustomer CRM.
 * 
 * The Initial Developer of the Original Code is Thomas Bader (Bader & Jene
 * Software-Ingenieurb黵o). Portions created by the Initial Developer are
 * Copyright (C) 2005 the Initial Developer. All Rights Reserved.
 * 
 * Contributor(s): Thomas Bader <thomas.bader@bader-jene.de>
 * 
 * ***** END LICENSE BLOCK *****
 */

package org.opencustomer.web.util;

public class StringUtility
{
    /**
     * Convert a string into a string where all characters which are no latin
     * letters or digits are converted in unicode escape sequences.
     * 
     * @param input the input string to be converted to a unicode escape string
     * @return a string which contains the escape sequences in unicode
     */
    public static final String unicode(final String input)
    {

        final StringBuffer result = new StringBuffer();

        if (input != null)
        {
            for (int i = 0; i < input.length(); ++i)
            {
                final char ch = input.charAt(i);
                final String s = hex(ch);
                final int h = Integer.parseInt(s, 16);
                if (h > 31 && h < 127 && h != 34 && h != 38 && h != 60 && h != 62)
                {
                    // ascii chars will be unconverted
                    result.append(ch);
                }
                else
                {
                    // each other characters will be converted in the unicode
                    // format where no control sequences are allowed
                    if ("00FC".equals(s))
                        result.append('\u00FC');
                    else
                        result.append(ch);
                    // result.append( "\\u"+s );
                    // result.append( s );
                }
            }
        }
        return result.toString();
    }

    private static final String hex(final char ch)
    {
        final StringBuffer result = new StringBuffer();
        String foo = Integer.toString(ch, 16).toUpperCase();
        for (int i = foo.length(); i < 4; i++)
            result.append("0");

        return result + foo;
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?