您的位置:首页 > 编程语言 > Java开发

java求字符串中挨着的连续数字并返回其长度

2016-07-09 18:11 302 查看
求字符串中相邻数字的长度,比如“qw123gh3456”返回4,“2345”返回3 数字必须是相邻的。

//推荐测试数据 

127,

12456,

we1we,

we1235rt56

public static StringBuffer getContinuousNumber(String str)
{
//count表示当前累计数字的个数
int count=0;
//最大数字长度和当前数字长度
int maxLength=0;
int nowLength=0;
//最大字符串和当前字符串
StringBuffer maxNumBuffer=null;
StringBuffer nowNumBuffer=null;

for(int i=0;i<str.length();i++)
{
//是数字的进入
if(str.charAt(i)>=48 && str.charAt(i)<=57)
{
count++;
//处理第一个数字字符
if(nowLength==0)
{
nowNumBuffer=new StringBuffer(String.valueOf(str.charAt(i)));
nowLength++;
}
else
{
int num=nowNumBuffer.charAt(count-2);
if(num+1==str.charAt(i))
{
nowNumBuffer.append(str.charAt(i));
nowLength++;
}
else
{
//当连续数字出现了非连续的数字4的时候,把这个4当做现在的buffer,并且设置当前大小为1,累计数字大小为1
nowNumBuffer=new StringBuffer(String.valueOf(str.charAt(i)));
nowLength=1;
count=1;
}
}
//整个字符串只有一个数字的情况会在这里给最大字符串赋值
if(nowLength>=maxLength)
{
maxLength=nowLength;
maxNumBuffer=nowNumBuffer;
}
}
else
{
//当连续数字之后出现了非数字要把累计的count都清空为0,当前字符大小为0
count=0;
nowLength=0;
}
}
return maxNumBuffer;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  算法