私は仕事をしようとしています。Java StringOutOfBoundsループ内のエラー
public class Main
{
public static void main(String[] args)
{
try
{
BufferedReader reader = new BufferedReader(new FileReader(args[0]));
String line = reader.readLine(); // start with the first line
String[] a = new String[3];
a = line.split(" ");
int n = a[0].charAt(0) - '0';
int m = a[1].charAt(0) - '0';
int k = a[2].charAt(0) - '0';
DisjointUnionSets dus = new DisjointUnionSets(n);
line = reader.readLine();
while(line != null)
{
String[] b = new String[2];
b = line.split(" ");
int tmp1 = b[0].charAt(0) - '0';
int tmp2 = b[1].charAt(0) - '0';
dus.union(tmp1,tmp2);
line = reader.readLine();
}
reader.close();
// Check if 4 is a neighbour of 1
if (dus.find(4) == dus.find(1))
System.out.println("Yes");
else
System.out.println("No");
// Check if 1 is a neighbour of 2
if (dus.find(1) == dus.find(2))
System.out.println("Yes");
else
System.out.println("No");
}
catch(IOException ex){}
}
}
それはエラーなしでコンパイルが、私はそれを実行しようとすると、TMP1を定義するとき、私は例外を取得:私は0
:
java.lang.StringIndexOutOfBoundsException:範囲外の文字列のインデックスを私がn、m、およびkを定義するときに、なぜこれが起こらないのかを実際に理解することはできません。私は同じ方法でbを使いますが、少なくともそれは私の考えです。
ありがとうございます!
あなたも入力を与えます –
コードを実行しようとしているコマンドを教えてください? –
私の入力は最初の行に3つの数字があり、次に2つの数字の行になります。数字は1つのスペースで区切られています。 @ニクサスSaxenaあなたが意味するものを正確にはわからないが、私は単にあなたの質問の場合は、ターミナルからJava main input.txtを実行します。 – cgss