runtimeerror是哪里出现问题了

img

import java.util.Scanner;
public class Main {
public static void main(String[] args)
{
Scanner sc= new Scanner(System.in);
String a=sc.nextLine();
String[] s=a.split(" ");
String m=" ";
for(int i=0;i
String s1=s[i].substring(0, 1).toUpperCase()+s[i].substring(1).toLowerCase();
m=m+s1+" ";
}
System.out.print(m.trim());

} }

  1. 如果输入字符串里有连续多个空白符,split得到的结果里有空字符串,substring(0, 1).toUpperCase()就会报错的
  2. 这里没有把题目中的其他空白符涵盖全,有一些遗漏
    参考代码
public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    String a=sc.nextLine();
    // 改动行
    String[] s=a.split("[\n\r\t\\s]");
    String m=" ";
    for(int i=0;i<s.length;i++) {
        // 改动行
        if ("".equals(s[i])) continue;
        String s1=s[i].substring(0, 1).toUpperCase()+s[i].substring(1).toLowerCase();
        m=m+s1+" ";
    }
    System.out.print(m.trim());
}