2017-08-12 70 views
-4

我試圖轉換一個字符串數組本身是另一個數組的一部分從外部文件饋入到Java中。從列中排列的數組轉換字符串數據

有兩個部分對這個問題:

  1. 如何字符串的子元素轉換爲雙打或者整形?
  2. 如何跳過本身是字符串一部分的標題?

我有以下一段代碼不會給我一個錯誤,但它也不會給我輸出。數據按列排列,因此就分割而言,我不確定使用哪個分隔符作爲該方法的參數。我試過\r, \n, ",", " ",沒什麼效果。

str0 = year.split(",");       
year = year.trim();       
int[] yearData = new int[str0.length-1]; 

for(i = 0; i < str0.length-1; i++) { 
    yearData[i] = Integer.parseInt(str0[i]); 
    System.out.println(yearData[i]); 
} 
+2

這怎麼不顯示輸出?它是否正確運行...? – clabe45

+3

請提供您輸入的最簡單示例,輸出應該是什麼以及您得到的錯誤或當前輸出。閱讀本指南:[mcve] – tima

+0

請顯示您希望程序能夠處理的輸入。 –

回答

0

您提供的代碼不起作用。無論如何,考慮使用正則表達式的給定示例,其中您找到了字符串中的所有數字,所以我們的正則表達式運行良好。通過更改正則表達式,您可以獲取子字符串以及您可以跳過頭部部分。我希望這會有所幫助。

String regEx = "[+|-]?(\\d+(\\.\\d*)?)|(\\.\\d+)"; 
    String str = "256 is the square of 16 and -2.5 squared is 6.25 「 + 「and -.243 is less than 0.1234."; 
    Pattern pattern = Pattern.compile(regEx); 
    Matcher m = pattern.matcher(str); 
    int i = 0; 
    String subStr = null; 
    while(m.find()) { 
    System.out.println(m.group()); 
0

嘗試這樣:

year = year.trim(); // This should come before the split()... 
str0 = year.split("[\\s,;]+"); // split() uses RegEx... 
int[] yearData = new int[str0.length-1]; 

for(i = 0; i < str0.length-1; i++) { 
    yearData[i] = Integer.parseInt(str0[i]); 
    System.out.println(yearData[i]); 
}