import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class T { public static void main(String args[]) throws IOException {
String inwrite="0"; //读取输入的数字 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); inwrite = br.readLine(); if (inwrite.isEmpty()){ inwrite="0"; } System.out.println(inwrite); // 我上面输入123456789 这里可以显示出来
1-1当然是不行的。1-2
public static void main(String[] args) {
String inwrite = "0"; // 读取输入的数字
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
try {
inwrite = br.readLine();
} catch (IOException e) {
e.printStackTrace();
} System.out.println(inwrite); // 我上面输入123456789 这里可以显示出来 for (int i = 0; i < inwrite.length(); i++) { // 然后我进for循环 就会报错 报错内容在最下面
System.out.println(inwrite.length()); // length=9
System.out.println("");
System.out.println(inwrite.substring(0, 1)); // 这个值可以打出来 是1
System.out.println(inwrite.substring(1, 2)); // 这里就不行了
System.out.println(inwrite.substring(2, 3));
System.out.println(inwrite.substring(3, 4)); }
}
}subString的用法建议再去看看
System.out.println(inwrite.substring(2, 3));
System.out.println(inwrite.substring(3, 4));
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class T { public static void main(String args[]) throws IOException {
String inwrite="0"; //读取输入的数字
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
inwrite = br.readLine();
if (inwrite.isEmpty()){
inwrite="0";
} System.out.println(inwrite); // 我上面输入123456789 这里可以显示出来
for (int i=0;i<inwrite.length();i++){ // 然后我进for循环 就会报错 报错内容在最下面
System.out.println(inwrite.length()); // length=9
System.out.println("");
System.out.println(inwrite.substring(0,1)); // 这个值可以打出来 是1
System.out.println(inwrite.substring(1,1)); // 这里就不行了
System.out.println(inwrite) ;
是下面出问题了
System.out.println(inwrite.substring(2,1)); // 但是如果我把所有的substring(0,1))都改成 substring(0)) substring(1)) substring(2)) 值又是可以出来的
System.out.println(inwrite.substring(3,1)); //
}
}
}问题原因:抛出:
IndexOutOfBoundsException - 如果 beginIndex 为负,或 endIndex 大于此 String 对象的长度,或 beginIndex 大于 endIndex。
System.out.println(inwrite.substring(1,2));
System.out.println(inwrite.substring(2,3));
System.out.println(inwrite.substring(3,4));
所以b-a>0可以正常进行,但是b-a<=0则会数组越界。
正如LZ所写的substring(1,1); 会数组越界的。