import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); // 注意 hasNext 和 hasNextLine 的区别 String input1 = in.nextLine(); String input2 = in.nextLine(); if (input1.length() > input2.length()) { String temp = input1; input1 = input2; input2 = temp; } // 对长度较小的做遍历 int maxLen = 0; // 记录最大子串长度 for (int i = 0; i < input1.length(); i++) { // ※比如"123".subString(0, 1) 取的是1,所以推论,j 要从1开始(从0开始没有意义) // 一直要走到和字符串长度一致位置(j <= input1.length, 等于号很关键) for (int j = i + 1; j <= input1.length(); j++) { // j - i 和上面的subString(0, 1) 道理一样,指截取的子串长度 if (input2.contains(input1.substring(i, j)) && j - i > maxLen) { maxLen = j - i; } } } System.out.println(maxLen); } }