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;
}
//推荐测试数据
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;
}
相关文章推荐
- 书评:《算法之美( Algorithms to Live By )》
- 动易2006序列号破解算法公布
- C#递归算法之分而治之策略
- Ruby实现的矩阵连乘算法
- C#插入法排序算法实例分析
- C#算法之大牛生小牛的问题高效解决方法
- C#算法函数:获取一个字符串中的最大长度的数字
- 超大数据量存储常用数据库分表分库算法总结
- C#数据结构与算法揭秘二
- C#冒泡法排序算法实例分析
- 算法练习之从String.indexOf的模拟实现开始
- C#算法之关于大牛生小牛的问题
- C#实现的算24点游戏算法实例分析
- 经典排序算法之冒泡排序(Bubble sort)代码
- c语言实现的带通配符匹配算法
- 浅析STL中的常用算法
- 算法之排列算法与组合算法详解
- C++实现一维向量旋转算法
- Ruby实现的合并排序算法
- C#折半插入排序算法实现方法