2017-04-01 71 views
-1

基本上,我試圖能夠讀取由某些條件(\ n \ s)分隔的每一行,並將字符串存儲到節點A和節點B中以用於添加節點,但不知道從哪裏開始或想出該怎麼做。請幫忙! Test.txt的java中的複雜字符串拆分方法

9 
4 

31,415,926,535 
2 

0 
1,234,567,890 

1,734,792 
131 

1,506,033,005,018,000,029 
1,992 
+0

爲節點自定義類?如果是這樣,那麼請張貼它 – opensam

+0

第三個非空白行應該是一個數字(31415926535),還是四個數字?無論如何,我不知道你在做什麼。你談論添加節點,但不要告訴我們Node是什麼。我們不知道您期望得到什麼結果,或者爲什麼它不起作用。我不知道「被某些條件分開」是什麼意思,我不知道你的問題在做什麼。我不知道「節點添加」是什麼意思。基本上,你沒有給我們任何工作。 – ajb

+0

這是行號4,應該是4個數字。例如31 - > 415 - > 926 - > 535添加到節點2 – Evansiauw

回答

0

String#split()以正則表達式作爲分隔符。

使用正則表達式\D+它表示一個或多個非數字。

所以只是改變String numbers[]= oneLine.split("\n") 到:

if (oneLine.isEmpty()) { 
     continue; 
} 
String numbers[]= oneLine.split("\\D+"); 
-1

public static void main(String[] args) { 

    try{ 
     String oneLine; 
     FileReader theFile = new FileReader("src/Test.txt"); 
     BufferedReader inFile = new BufferedReader(theFile); 
     Node A = new Node(0,null); 

     while((oneLine = inFile.readLine()) != null) { 

      String numbers[]= oneLine.split("\n"); 

      for (int i=0;i<numbers.length;i++){ 
       int a = Integer.parseInt(numbers[i]); 
       A.addNumtoNode(a); } } } 

public void addNumtoNode(int e){ 
     head = new Node(e,head); 
     if (size == 0) 
     tail = head; 
     size++; 
     } 

樣我覺得這個節目應該分開使用行 ''。 readLine()按行分割文本,然後你需要用','分隔的那一行的數字。

+0

如果我使用','那麼它會給我錯誤時讀第一行..所以我需要確保應用一些條件,如空格,輸入或',' – Evansiauw