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;

参考技术A

代码截图

代码如下:


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

split截取一下获取

以上是关于java 取字符串的中字母数字组合?的主要内容,如果未能解决你的问题,请参考以下文章

Java实现随机生成由字母数字组合的N位随机数

linq 字母数字组合字符串排序

求一个正则表达式,要求 数字,大写字母,小写字母,特殊字符 至少两种或两种以上组合的正则表达式。

17. 电话号码的字母组合 Java

17. 电话号码的字母组合 Java

力扣刷题:电话号码的字母组合(java实现)