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

这是将字符串解析为整数数组的一种方法:

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() 方法并传入正则表达式(空格)。

那么您将需要使用 Integer.parseInt() 方法并传入每个字符串以将它们解析为 Integer。您还需要一个循环来进行解析,直到什么都没有

于 2012-10-09T02:39:15.280 回答