这是我的代码
import java.util.*;
public class String3 {
public static void main(String[] args)throws IndexOutOfBoundsException {
Scanner sc=new Scanner(System.in);
String s=sc.nextLine();
int l=sc.nextInt();
for(int i=0;i<=s.length();i++) {
System.out.println(s.substring(i,i+l));
}
}
}
我收到这些错误
java.lang.StringIndexOutOfBoundsException:
begin 6, end 9, length 8 at
java.base/java.lang.String.checkBoundsBeginEnd(Unknown Source) at
java.base/java.lang.String.substring(Unknown Source) at
String3.main(String3.java:9)
答案 0 :(得分:1)
将您的代码更改为
Scanner sc=new Scanner(System.in);
String s=sc.nextLine();
int len=sc.nextInt();
for(int i=0;i<=s.length() - len;i++) {
System.out.println(s.substring(i,i+len));
}
答案 1 :(得分:-1)
错误说,
begin 6, end 9, length 8
表示您正在尝试访问长度仅为8的字符串的stubstring(6到9)。
length()
方法返回实际长度而不是0索引长度(在开头可能会引起混淆)
因此,在for循环中将<=
更改为<
应该可以修复它。