Andy 胡

导航

Java分割ID和姓名(String不能当输出参数)

ID:包括数字和字母

姓名:汉字

package org.ah;

import org.ah.utils.Utils;

public class Test {
    public static void main(String[] args) {
        String s = "1234999X1祁同伟";
        char[] cNum = new char[30];
        char[] cStr = new char[30];

        Utils.getSpliteNum(s, cNum, cStr);
        // X:直接toString会输出内存: String sNum = cNum.toString();
        String sNum = new String(cNum).trim();
        String sStr = new String(cStr).trim();
        System.out.println(sNum + "<-->" + sStr);
    }

    /**
     * Java传String参数,取不出结果;必须传char[]类型参数
     */
    public static void getSpliteNum(String s, char[] cNum, char[] cStr) {
        char[] c = new char[50];
        int iNum = 0;

        int iStr = 0;

        s.getChars(0, s.length(), c, 0);
        for (int i = 0; i < s.length(); i++) {
            char cTemp = c[i];

            if (cTemp >= 0x4e00 && cTemp <= 0x9fa5) {
                // 汉字:[0x4e00,0x9fa5]
                cStr[iStr++] = cTemp;
            } else if ((cTemp >= '0' && cTemp <= '9')
                    || (cTemp >= 'a' && cTemp <= 'z')
                    || (cTemp >= 'A' && cTemp <= 'Z')) {
                cNum[iNum++] = cTemp;
            }
        }
    }
}

 

posted on 2017-04-21 10:15  talkwah  阅读(365)  评论(0编辑  收藏  举报