1

次のようなテキストを持つテキストファイルのint値を取得しようとしています。

123456789 12345678 1234567 123456 12345 1234 123 12 1

ご覧のとおり、すべての数字は異なり、「スペース」で区切られた同じ行にあります。値を分離する必要があります。このようなものを取得するには:

INT1 = 123456789, INT2 = 12345678, INT3 = 1234567;

等々。私はテキストを作成しないので、それらがいくつの数字とグループであるかはわかりませんが、それらは常に「スペース」で区切られています。私はそれを読む方法を知っています。これは私がそれを読んでいる方法です:

try {
    TEST1 = new BufferedReader(new FileReader("/sdcard/test.txt")).readLine();

    } catch (NumberFormatException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    TEST.setText(""+scaling_available_frequencies);

そして私はこの出力を得ました

194208 776175 958253 767883 700246 243663 966618 345199 945363 459833

注:これは、機能するかどうかを確認するために作成したtest.txtです。現在のコードは、パスとファイル名の入力をユーザーに求めます。

では、どうすればそれらをグループごとの変数に設定できますか?

ありがとう

4

2 に答える 2

2

これは、文字列を整数配列に解析する1つの方法です。

public int[] toIntArray( String stringFromFile ){

    String[] allStrings = stringFromFile.split( "\\s" );
    int[] intArray = new int[allStrings.length];
    for( int i = 0; i < allStrings.length; ++i ){
        try{
            intArray[i] = Integer.parseInt( allStrings[i] );
        }catch( NumberFormatException e ){
            // Do whatever you think is appropriated
            intArray[i] = -1;
        }
    }
    return intArray;
}

お役に立てれば。

于 2012-10-09T03:12:10.007 に答える
1

readLine()で文字列を取得できると思います。StringのSplit()メソッドを使用して、regularExpression(空白)を渡す必要があります。

次に、Integer.parseInt()メソッドを使用し、すべての文字列を渡して整数に解析する必要があります。何も残らなくなるまで解析を行うためのループも必要です

于 2012-10-09T02:39:15.280 に答える