为什么我得到StringIndexOutOfBoundsException:字符串索引超出范围:65



我正在使用shell排序从输入文件中查找填充。

这是我的代码:

package assignment.pkg3;
import java.io.*;
import java.util.*;
public class Sorting{
   public static void main (String[] args) throws IOException
   {
      String[] countryArray = new String[238];
      String [] newStringArray = new String [238];
      Scanner stdIn = new Scanner(new File("C:\Users\talls_000\Downloads\CountryUnsortedFormat.txt"));
      //reads the file into the array
      while(stdIn.hasNext())
      {
         for (int i = 0; i < countryArray.length; i++)
         {
            countryArray[i] = stdIn.nextLine();
         }//end for
      }
      int j;
      int high = 65;
      String temp;
      //temp=countryArray[ i ].substring(50, 65);
      for( int gap = countryArray.length / 2; gap > 0; gap /= 2 )
      {
         for( int i = gap; i < countryArray.length; i++ )
         {
            temp=countryArray[ i ].substring(50,high);
            for( j = i; j >= gap && temp.compareTo( countryArray[ j - gap ] ) < 0; j -= gap )
            {
               countryArray[ j ] = countryArray[ j - gap ];
                countryArray[ j ] = temp;
            }

         } 
      }
      for (int i = 0; i < countryArray.length; i++)
      {
         System.out.println(countryArray[i]);
      }//end for 
   }
}

我在第33行收到错误:temp=countryArray[ i ].substring(50,high);

Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 65
    at java.lang.String.substring(String.java:1950)
    at assignment.pkg3.Sorting.main(Sorting.java:33)

如果我把50改为0,它是有效的,但我需要从50点开始。为什么我会出现此错误?

似乎有些国家没有足够的长度来获取从50到65的字符。首先,您应该检查countryArray包含的内容。只需使用调试器。

相关内容

  • 没有找到相关文章

最新更新