大体是用二维数组写的,报错Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String ind
ex out of range: -1
        at java.lang.String.substring(Unknown Source)
        at ACM1002.main(ACM1002.java:16)
麻烦看一下,在线等...
import java.util.Scanner;public class ACM1003{ public static void main(String[]args){

Scanner scan = new Scanner(System.in);
int i = scan.nextInt();
String s[][] = new String[i][2];
int j[][] = new int[1][2];

for(int m=0;m<i;m++){

String s2 = scan.next();
int e = s2.indexOf(' ');
s[m][0] = s2.substring(0,e);
s[m][1] = s2.substring(e);

j[m][0] = Integer.parseInt(s[m][0]); 
j[m][1] = Integer.parseInt(s[m][1]);

}


for(int n=1;n<=i;n++){

System.out.println("Case " + n +":");
System.out.println(j[n][0] + " + " + j[n][1] + " = " + (j[n][0] + j[n][1]));
System.out.println();

}


}}

解决方案 »

  1.   

    是这一行:s[m][0] = s2.substring(0,e);
      

  2.   

    通过scanner.next方法获取到的是  查找并返回来自此扫描器的下一个完整标记
    所以你获得的只能是一个完整的字符串不会带有' ',所以s2.indexOf(' ') 的返回值只能是-1而对于这个而言 s2.substring(0,e);   
     返回一个新字符串,它是此字符串的一个子字符串。该子字符串从指定的 beginIndex 处开始,直到索引 endIndex - 1 处的字符。因此,该子字符串的长度为 endIndex-beginIndex。 所以报错了  以上个人见解