例如输入“4fdj7ejs4”如何把字母和数字分别提取出来?
@Test
public void test4(){
String sample = "4fdj7ejs4";
String num = "";
String alph = "";
char[] arr = sample.toCharArray();
for(int i = 0; i < arr.length; i++){
try{
int a = Integer.parseInt(String.valueOf(arr[i]));
num = num.concat(String.valueOf(arr[i]));
}catch (Exception e){
alph = alph.concat(String.valueOf(arr[i]));
}
}
System.out.println("字母是:"+alph);
System.out.println("数字是:"+num);
}
public static void main(String[] args) { StringBuffer characters = new StringBuffer(); StringBuffer letter = new StringBuffer(); StringBuffer number = new StringBuffer(); String str = "中国abc123"; char[] strArr = str.toCharArray(); for (char string : strArr) { // 判断是否为字母 if ((string+"").matches("[a-z]") || (string+"").matches("[A-Z]")){ letter.append(string+" "); } // 判断是否为数字 if ((string+"").matches("[0-9]")){ number.append(string+" "); } // 判断是否为汉字 if (isChineseChar(string+"")){ characters.append(string+" "); } } System.out.println(characters.toString()); System.out.println(letter.toString()); System.out.println(number.toString()); } /** * 判断是否为汉字 * @param str * 字符串 * @return */ public static boolean isChineseChar(String str){ boolean temp = false; Pattern p=Pattern.compile("[\u4e00-\u9fa5]"); Matcher m=p.matcher(str); if(m.find()){ temp = true; } return temp; } }
String s1 = "";
String s2 = "";
char[] arr = "4fdj7ejs4".toCharArray();
for (char c : arr)
{
if (c >= '0' && c <= '9') s1 = s1 + c.toString();
else
s2 = s2 + c.toString();
}
for循环用char值比较