import java.util.*; public class Main{ public static void main(String arg[]){ //输入字符串 Scanner input = new Scanner(System.in); String str = input.next(); str = str + 'a' + ""; //此处用意详见:第11行 和 第29行起 String temp = ""; String result = ""; //注意: 进入字符串长度比较语句(第21行)的前提是: 字符串中第i+1个字符不是数字,因此我们需要考虑末尾是字符串的情况 //因为: 判定数字串结束的条件, 在于下一个ch不是数字, 才会进行后续比较 int i = 0; //此处不在下一行的for循环中进行定义是因为需要记下i的值,用于比较最后位于末尾的数字串(详见29行起) for(i=0; i<str.length(); i++){ char ch = str.charAt(i); //在对字符串进行遍历时.当ch为数字时, 自动拼接为字符串temp if(ch<='9' && ch>='0'){ temp = temp + ch + ""; }else{//当ch不为数字时, 比较字符串长度,重新对result字符串赋值 并将temp置空(注意: NULL是不指向任何对象, 而 "" 表示:指向对象为空) if(temp.length() > result.length()){ result = temp; //注意此处是让result指向temp的引用对象 } //等循环结束后把temp初始化为空 temp = ""; } } //判断最后一个元素是不是数字 //法一 >> 可以直接给输入的字符串str后补一个a, 对结果不影响, 而且还解决了重新判断最后一个数字串的问题 //法二 >> 此时的temp里是存储了最后的数字串的, 但因为循环已经结束而无法进入比较语句, 于是单独拿出来进行比较 /* if(i == str.length() && temp.length() > result.length()) result = temp; */ //输出 System.out.print(result); } }