2012-10-09 65 views
1

我試圖讓有類似文本的文本文件的int值:得到的文本文件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。當前的代碼將要求用戶輸入路徑和文件名。

現在如何將它們設置爲每個組的變量?

謝謝

回答

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; 
} 

希望這有助於。

+0

正是我想要做的。 –

1

我相信readLine()讓你String。 您將需要使用String的Split()方法並傳入regularExpression(空格)。

然後您將需要使用Integer.parseInt()方法並傳入每個字符串以將它們解析爲Integer。 你還需要一個循環來解析,直到一無所有

+0

是的我知道這給我一個字符串,但我必須像這樣設置它,因爲空格,我將搜索Split()並查看我能做什麼 –

相關問題