java 取字符串的中字母数字组合?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 取字符串的中字母数字组合?相关的知识,希望对你有一定的参考价值。
字符串 “p17g1n12j3” 怎么根据字母取到 p17 , g1 , n12 , j3,知道字母,需要取字母后面对应的数字,数字长度不固定。
以下是全部代码,不管你字母是什么,字母后边有多少数字,都能取出来,如果是只需要数字,那么拼接的时候别拼接那个字母就OK
public static void main(String[] args)
String str = "p17g1n12f3";
StringBuffer data = new StringBuffer();
String[] arr = new String[4];
for (int i = 0,j=0,leni = str.length();i<leni;i++)
str.charAt(i);
if (check(str.charAt(i)))
if (StringUtils.isBlank(data.toString()))
data.append(str.charAt(i));
else
arr[j] = data.toString();
j++;
data = new StringBuffer();
data.append(str.charAt(i));
if (isNumberic(str.charAt(i)+""))
data.append(str.charAt(i));
if (i+1 == leni)
arr[j] = data.toString();
System.out.println(Arrays.toString(arr));
/**
* 判断字符串是否为数字
*
* @param str
* @return
*/
public static boolean isNumberic(String str)
Pattern pattern = Pattern.compile("[0-9]*");
return pattern.matcher(str).matches();
/**
* 判断一个字符串是否为字母
*
* @param fstrData
* @return
*/
public static boolean check(char fstrData)
char c = fstrData;
if (((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')))
return true;
else
return false;
代码如下:
public static void main(String[] args)
String str = "p17g1n12j3";
char c = 'p';
String find = "";
int i = str.indexOf(c);
if (i==-1)
find = "未找到";
System.out.println(find);
return;
find+=c;
for (int j = i+1; j < str.length(); j++)
char charAt = str.charAt(j);
if (charAt>='0' && charAt<='9')
find+=charAt;
else
break;
System.out.println(find);
参考技术B
以上是关于java 取字符串的中字母数字组合?的主要内容,如果未能解决你的问题,请参考以下文章