题解 | #在字符串中找出连续最长的数字串#
在字符串中找出连续最长的数字串
https://www.nowcoder.com/practice/2c81f88ecd5a4cc395b5308a99afbbec
import java.util.*; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); // 注意 hasNext 和 hasNextLine 的区别 while (in.hasNextLine()) { // 注意 while 处理多个 case String line = in.nextLine(); List<String> datas = new ArrayList<>(); StringBuilder sb = new StringBuilder(); for (int i = 0; i < line.length(); i++) { char c = line.charAt(i); if (c >= '0' && c <= '9') { sb.append(c); } else { if (sb.length() > 0) { datas.add(sb.toString()); sb = new StringBuilder(); } } } if (sb.length() > 0) { datas.add(sb.toString()); } Collections.sort(datas, new Comparator<String>() { @Override public int compare(String o1, String o2) { return Integer.compare(o2.length(), o1.length()); } }); if (datas.size()>0){ int length = datas.get(0).length(); sb= new StringBuilder(); sb.append(datas.get(0)); for (int i =1;i<datas.size();i++){ if (datas.get(i).length()==length){ sb.append(datas.get(i)); }else{ break; } } System.out.println(sb.toString()+","+length); } } } }