1、使用正则切割字符串
2、使用栈来缓存最长数字字符串下标
import java.util.*;
public class Main{
public static void main(String [] args){
getStringLen();
}
public static void getStringLen(){
Scanner scan = new Scanner(System.in);
while(scan.hasNext()){
String [] input = scan.nextLine().split("[^0-9]");
if(input.length == 0){
System.out.println();
continue;
}
if(input.length == 1){
System.out.println(input[0] + ","+ input[0].length());
continue;
}
Stack<Integer> stack = new Stack();
stack.push(input[0].length());
for(int i =input.length-1; i>=0;i--){
if(input[stack.peek()].length() == input[i].length()){
stack.push(i);
continue;
}
if(input[stack.peek()].length() < input[i].length()){
stack.clear();
stack.push(i);
continue;
}
}
int len = input[stack.peek()].length();
while(!stack.empty()){
System.out.print(input[stack.pop()]);
}
System.out.println(","+len);
}
}
}
京公网安备 11010502036488号