Java 它工作,但我仍然得到一个错误消息,我做错了什么?
我的老师想让我们取一个被插补的字符串,取一定的增量,然后以这些增量提取字符。我已使其正常工作,但仍收到以下错误消息:Java 它工作,但我仍然得到一个错误消息,我做错了什么?,java,Java,我的老师想让我们取一个被插补的字符串,取一定的增量,然后以这些增量提取字符。我已使其正常工作,但仍收到以下错误消息: java.lang.StringIndexOutOfBoundsException: String index out of range: 21 然后突出显示代码行point=base.charAt(sum): 这是我的全部代码,您可以看到我在做什么 import java.util.*; public class EveryOtherCharacter { public
java.lang.StringIndexOutOfBoundsException: String index out of range: 21
然后突出显示代码行point=base.charAt(sum)
:
这是我的全部代码,您可以看到我在做什么
import java.util.*;
public class EveryOtherCharacter {
public static void main(String[]args) {
Scanner input = new Scanner(System.in);
System.out.print("Enter a String: ");
String base = input.nextLine();
System.out.print("Enter an increment: ");
int index = input.nextInt();
int a = base.length();
int sum = 0;
char point;
if(index>a) {
System.out.println("Invalid increment: "+index);
}
else {
while (index<=a) {
sum+=index;
point = base.charAt(sum);
System.out.print(point);
}
System.out.println();
}
}
}
import java.util.*;
公共类每个其他字符{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(System.in);
System.out.print(“输入字符串:”);
String base=input.nextLine();
System.out.print(“输入增量:”);
int index=input.nextInt();
int a=base.length();
整数和=0;
焦点;
如果(索引>a){
System.out.println(“无效增量:+索引”);
}
否则{
while(index首先,while
循环的条件应该是sum
,而不是索引Java为0(字符串的第一个字符位于0
位置,最后一个位于长度-1
),因此while(indexIt看起来你得到的是数组外的字符。如果我使用do while循环,lengthmy老师会取分数。有没有办法用for循环来实现这一点?
do {
point = base.charAt(sum);
System.out.println(point);
sum += index;
} while(sum < a)
for(sum = 0 ; sum < a ; sum += index) {
point = base.charAt(sum);
System.out.println(point);
}