0
点赞
收藏
分享

微信扫一扫

微软100题-天天做-第25题

五殳师兄 2022-07-28 阅读 21


第25题(字符串):写一个函数,它的原形是int continumax(char *outputstr,char *intputstr)
功能:
在字符串中找出连续最长的数字串,并把这个串的长度返回,
并把这个最长数字串付给其中一个函数参数outputstr所指内存。
例如:"abcd12345ed125ss123456789"的首地址传给intputstr后,函数将返回9,

 

 

outputstr所指的值为123456789

 

 

 

package com.microsoft;

import java.util.ArrayList;
import java.util.List;

public class NumberFromString {
private String str;
public NumberFromString(String str){
this.str=str;
}
public String getLongestNumberFromString(){
List<String> numberList=new ArrayList<String>();
char[]charArray=str.toCharArray();
int start=0;
int end=0;
for(int i=0;i<charArray.length;i++){
if(charArray[i]>='0'&&charArray[i]<='9'){
start=i;
int step=start+1;
while(true){
if(step>=str.length()){
break;
}
if(!(charArray[step]>='0'&&charArray[step]<='9')){
break;
}
step++;
}
i=step;
String numberStr=str.substring(start, step);
numberList.add(numberStr);
}
}
int maxLength=0;
String ret=null;
for(int i=0;i<numberList.size();i++){
String s=numberList.get(i);
if(maxLength<s.length()){
maxLength=s.length();
ret=s;
}
}
return ret;
}
public static void main(String[] args) {
NumberFromString instance=new NumberFromString("1abc345699k99999");
System.out.println(instance.getLongestNumberFromString());
}

}

 

 

 

 

 

举报

相关推荐

0 条评论