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; } } } }