2013-07-05 86 views
0

當我輸入一個文件並嘗試從中提取打印的字符串並雙擊時,我最終提取了文本本身的信息。我在我的while循環中插入了一個System.out.println來打印文件中的行,並且還打印了額外的文本信息行。我試圖只從文件中獲得書面文本,忽略了以下幾行:從.txt文件中提取數據字符串

\ pard \ tx720 \ tx1440 \ tx2160 \ tx2880 \ tx3600 \ tx4320 \ tx5040 \ tx5760 \ tx6480 \ tx7200 \ tx7920 \ tx8640 \ ql \ qnatural \ pardirnatural「

我這樣做是爲了讓我可以從文件中獲取信息來製作字符串數組。 這個程序的目的是輸入一個包含信息行的文件姓氏(字符串),名字(字符串),帳戶餘額(雙)),分別提取每行,將每個行字符串放入數組列表中,對數組列表進行排序(按姓氏,然後按名字排序),然後輸出文件,名稱爲output.txt,與新的排序行相關。行將被格式化爲姓,名,然後帳戶餘額與一個sp每個之間的王牌。行數可以變化。

輸入例(從.txt文件):

史密斯查爾斯200.000

阿倫德雷克5000.00

阿倫特雷300.00

Burbis Zeik 400.00

咱瑞克6000.00

輸出示例(寫入到文件output.txt的):

阿倫·德雷克5000.00

阿倫三分球300.00

Burbis Zeik 400.00

史密斯查爾斯200.000

咱裏克6000.00

謝謝!

public static void main(String[] args) throws IOException { 
    Scanner fileName = new Scanner(System.in); 
    String file = fileName.next(); 
    String input; 
     Scanner fileinput = null; 
    // File inFile = new File("c:\\csc2310\\test.txt"); 
     File inFile = new File(file); 
    int i = 0; 
     try 
     { 
     fileinput = new Scanner(inFile); 
     while(fileinput.hasNext()) 
     { 

      i++; 
      System.out.println(i); 
      input = fileinput.nextLine(); 
      System.out.println(input); 
     } 
     fileinput.close(); 
     }catch(FileNotFoundException e) 
     { 
     System.out.println(e); 
     System.exit(1); 
     } 
     finally 
     { 
      fileinput.close(); 
     } 
} 
+5

請向我們顯示您的輸入和您的預期輸出。 –

+0

我真的不明白你想做什麼,但是,也許你的問題是,你正在使用'println'而不是'print'? – 2rs2ts

+0

你的問題很不清楚。請編輯您的帖子,幷包含一些示例輸入和輸出。 –

回答

-1

您的字符串被寵壞了。 Java在閱讀時會自動用\填充\字符。

因此你

"\\pard\\tx720\\tx1440\\tx2160\\tx2880\\tx3600\\tx4320\\tx5040\\tx5760\\tx6480\\tx7200\\tx7920\\tx8640\\ql\\qnatural\\pardirnatural" 

你也許能夠唯一能做的可能做的是閱讀的字符串作爲字節數組,並刪除字節相當於\的。檢查是否有可能

0

該問題與TextEdit(Mac OS文本編輯器)保存.text文件的方式有關。我將相同的信息寫入JEdit,並使用相同的擴展名保存,並刪除了所有文本信息。感謝您的時間。