2
10
aaa aaa aaa
bbb bbb bbb
ccc ccc ccc
ddd ddd ddd

タブ区切り文字で読み取ろうとしているテキストファイルがあります。ファイルを読み取るたびに、10 の後に arrayindexoutofbound エラーが発生します。オンラインで検索したところ、\t の後ろに -1 を追加する必要があることがわかりましたが、それでも同じエラーが発生します。

 try{
        Scanner scan = new Scanner(new File("1.txt"));
        String line="";
        int readline = Integer.parseInt(scan.nextLine());//

        while (scan.hasNextLine())
        {
            line = scan.nextLine();

            if(line.equals("ccc"))
            {  
                break;
            }
        String[] split=line.split("\t");

            array.add(split);
        } 
4

2 に答える 2

0

このようにして、コードはこの醜いブレークを失います (ブレークはほとんどの場合回避可能です...)

  try{
    Scanner scan = new Scanner(new File("1.txt"));
    String line="";
    int readline = Integer.parseInt(scan.nextLine());//

    while (scan.hasNextLine())
    {
        line = scan.nextLine();

        if(!line.equals("aaa")){
           String[] split=line.split("\t");
           array.add(split);
        }
    }  

そして、あなたの問題について、最初の行の整数で配列を初期化していると思いますが、それは10で、12個の要素があります。したがって、インデックスは範囲外ですが、あなたの質問は不明のままです...

于 2013-08-20T09:42:21.777 に答える