Java 正在获取大于60的输入字符串长度

Java 正在获取大于60的输入字符串长度,java,string,Java,String,我正在写一个程序,计算给定序列中氨基酸编码的概率。当我试图从用户那里获取输入时,它显示以下错误 Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 407 at java.lang.String.charAt(String.java:646) at BNC.Sequence.<init>(Sequence.java:50)

我正在写一个程序,计算给定序列中氨基酸编码的概率。当我试图从用户那里获取输入时,它显示以下错误

Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 407
    at java.lang.String.charAt(String.java:646)
    at BNC.Sequence.<init>(Sequence.java:50)
    at BNC.Navie_Bayesian_Classifier.main(Navie_Bayesian_Classifier.java:34)
407Java Result: 1
线程“main”java.lang.StringIndexOutOfBoundsException中的异常:字符串索引超出范围:407 位于java.lang.String.charAt(String.java:646) 在BNC.Sequence.(Sequence.java:50) 位于BNC.Navie\u Bayesian\u Classifier.main(Navie\u Bayesian\u Classifier.java:34) 407Java结果:1 我的代码是

      try(Scanner scan=new Scanner(new File("F:\\Thiyaga\\ProteinSequence\\Test.txt")))
    {


    line = scan.nextLine().trim();
    length=line.length();
 //   line=reader.readLine();
    }
          System.out.print(length);
    for(i=0;i<20;i++)
    {
        count[i]=0;
        probility[i]='\0';
    }
            for(int k=0;k<length;k++)
    {
        switch(line.charAt(k))
                    {
try(Scanner scan=new Scanner(新文件(“F:\\Thiyaga\\ProteinSequence\\Test.txt”))
{
line=scan.nextLine().trim();
长度=line.length();
//line=reader.readLine();
}
系统输出打印(长度);

对于(i=0;i而言,执行所提供的代码不会导致错误。以下是给定代码段的简化版本,可以很好地处理给定的输入文件:

import java.util.Scanner;
import java.io.File;
import java.io.IOException;

public class XXX{

  public static void main(String[] args){
    try(Scanner scan=new Scanner(new File("Test.txt"))){
      String line = scan.nextLine().trim();
      int length=line.length();
      for(int k=0;k<length;k++)
        System.out.println(k + " " +  line.charAt(k));
     } catch (IOException e){
         e.printStackTrace();
     }
   }
 } 
import java.util.Scanner;
导入java.io.File;
导入java.io.IOException;
公共类XXX{
公共静态void main(字符串[]args){
try(Scanner scan=new Scanner(新文件(“Test.txt”)){
String line=scan.nextLine().trim();
int length=line.length();

for(int k=0;kI不知道您的代码到底在哪里中断,您的代码在做什么,以及讨论的行号。您是否在for(int k=0;k中修改
字符串行
loop?您最好在该循环中发布代码。而不是在代码的帮助下传递给同一类中的其他类。谢谢。。。