我在为学校写作的程序中修复此错误时遇到问题。我已经粘贴了下面的java片段以及运行代码后收到的错误。
Java片段:
public static void main(String[] args) throws IOException {
String largeSpace = " ";
String smallSpace = " ";
//Printing header row
System.out.print("Title" + largeSpace.substring("Title".length()));
System.out.print("ISBN" + smallSpace.substring("ISBN".length()));
System.out.print("Course" + smallSpace.substring("Course".length()));
System.out.print("Enrollment" +
smallSpace.substring("Enrollment".length()));
System.out.print("To Order");
System.out.println();
BufferedReader bufferedReader = null;
我收到错误:
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String
index out of range: -4
at java.lang.String.substring(Unknown Source)
at A5WilliamCarter.main(A5WilliamCarter.java:102)
答案 0 :(得分:0)
因为" Title" .length()是5,而largeSpace只有长度1,而5大于1,所以它会抛出一个StringIndexOutOfBoundsException。你是短4个字符。
我不完全确定你在做什么,但我认为可能的解决办法如下:
System.out.print("Title" + largeSpace*("Title".length()));
答案 1 :(得分:0)
您正在分配String largeSpace = " ";
,然后尝试从索引5开始获取它的子字符串,这样就可以缩短4个字符。
答案 2 :(得分:0)
你无法做你正在做的事情
largeSpace.substring("Title".length())
smallSpace.substring("ISBN".length())
这是因为largeSpace和smallSpace的长度都是1,但是你试图从字符4和5开始获取子字符串。这会引发错误。我不确定你要对这段代码做什么,所以我无法提供修复。