输入 |
输入一个字符串。 |
---|---|
输出 |
输出字符串中最长的数字字符串和它的长度。 如果数字字符串为空,则只输出0 如 input: dadfsaf output:0 |
样例输入 | abcd12345ed125ss123058789 |
样例输出 | 123058789,9 |
import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); String[] strs={"ab","a","b"}; Arrays.sort(strs); List<String> list=Arrays.asList(strs); System.out.println(list); scanner.close(); } public static String get(String text) { int max=0; int len=text.length(); List<String> list=new ArrayList<String>(); String temp=""; int start=0,end=0; boolean num=false; for(int i=0;i<len;i++) { char c=text.charAt(i); if(c>='0'&&c<='9') { if(!num) { num=true; start=i; } if(i==len-1) { if(len-start>=max) { temp=text.substring(start); if(len-start>max) { list.clear(); list.add(temp); } else { list.add(temp); } max=len-start; } } } else { if(num) { num=false; end=i; if(end-start>=max) { temp=text.substring(start,end); if(end-start>max) { list.clear(); list.add(temp); } else { list.add(temp); } max=end-start; } end=0; } } } if(max==0) return "0"; String result=""; for(int i=0;i<list.size();i++) { result+=list.get(i)+","; } return result+max; } }
求最长的连续子串
public static int continueMax(String str) { int cnt=0,pos=0,max=0; int len=str.length(); for(int i=0;i<len;i++) { if(str.charAt(i)>='0' && str.charAt(i)<='9') { cnt++; if(cnt>max)//动态的设置起点,避免判断是不是最后一个点 { max=cnt; pos=i-max+1; } } else { cnt=0; } } System.out.println(str.substring(pos, pos+max)); return max; }