我试图根据单词中的字母数打印不同的字符串,但我的第二个“if”语句破坏了代码。
import java.util.Scanner;
public class practice {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.printf("Enter a string: ");
String aString = in.next();
int length = aString.length();
char first = aString.charAt(0);
char second = aString.charAt(1);
char third = aString.charAt(2);
char fourth = aString.charAt(3);
char fifth = aString.charAt(4);
char sixth = aString.charAt(5);
char seventh = aString.charAt(6);
if (length == 7) {
System.out.println(String.format("Line 1: %s %s %s %s ", first, third, fifth, sixth));
System.out.println(String.format("Line 2: %s %s %s ", second, fourth, sixth));
System.out.println(String.format("Line 3: %s %s %s %s ", seventh, fifth, third, first));
}
else {
if (length < 7) {
System.out.println("the length is less than 7");
}
}
}
}
如果我输入的单词少于 7 个字母,我只会收到一条错误消息,显示为“字符串索引超出范围:6”。我该如何解决这个问题?
最佳答案
因为我不知道确切的要求我只是解决了代码下面的错误检查
import java.util.Scanner;
public class practice {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.printf("Enter a string: ");
String aString = in.next();
int length = aString.length();
if (length == 7) {
char first = aString.charAt(0);
char second = aString.charAt(1);
char third = aString.charAt(2);
char fourth = aString.charAt(3);
char fifth = aString.charAt(4);
char sixth = aString.charAt(5);
char seventh = aString.charAt(6);
System.out.println(String.format("Line 1: %s %s %s %s ", first, third, fifth, sixth));
System.out.println(String.format("Line 2: %s %s %s ", second, fourth, sixth));
System.out.println(String.format("Line 3: %s %s %s %s ", seventh, fifth, third, first));
}
else {
if (length < 7) {
System.out.println("the length is less than 7");
}
}
}
}
关于java - java中的字符串索引超出范围错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35401238/