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

来源:互联网 发布:跑跑卡丁车淘宝好便宜 编辑:程序博客网 时间:2024/06/07 08:39
第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 0
原创粉丝点击