-4
入力ファイルから集団を見つけるためにシェルソートを使用しています。ここでなぜ私はStringIndexOutOfBoundsExceptionを取得していますか?文字列インデックスが範囲外です:65
は私のコードです:
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)
私は0に50を変更した場合、それは動作しますが、私はスポット50から取る必要があります。 このエラーが発生するのはなぜですか?
あなたは[mcve]を作ることを学んでいなかったので。そのページを注意深く読んでください。あなたがいるときは、そこに同じタイトルのすべての関連記事をチェックしてください---------------> – Tunaki
[StringIndexOutOfBoundsException]の可能な複製(http://stackoverflow.com/questions/7505947/)ストリング・アウト・オブ・セクション) – ochi