java - java中的字符串索引超出范围错误

标签 java string if-statement

我试图根据单词中的字母数打印不同的字符串,但我的第二个“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/

相关文章:

java - 嵌套循环的实现

java - 使用 javax.mail 搜索电子邮件收件箱

Java 字符串乘以 2 个整数

java - 二叉树遍历不起作用

python - 将 redis 哈希转换为 python 字典?

c - 问题查找字符串中给定子字符串的出现次数

java - 需要一个程序要求用户输入 2 个整数,检查第二个数字是否是第一个数字的倍数

jquery - jQuery连续有多个If语句

java - 使用 JOptionPane 的 Java 的 If Else 语句

java - 更改卡片布局中的框架和焦点