2014-03-13 28 views
0

這裏是我的所有代碼,你們看,我會解釋以下問題:Java的兩個不同的文件,做的東西,但現在他們是一個..希望他們分開

import java.io.*; 
import java.util.*; 

public class Plagiarism { 

    public static void main(String[] args) { 

     Plagiarism myPlag = new Plagiarism(); 

     if (args.length == 0) { 
      System.out.println("Error: No files input"); 
     } 
     else if (args.length > 0) { 
      try { 
       for (int i = 0; i < args.length; i++) { 
        BufferedReader reader = new BufferedReader (new FileReader (args[i])); 
        List<String> foo = simplify(reader); 
         for (int j = 0; j < foo.size(); j++) { 
          System.out.print(foo.get(j)); 
         } 
       } 
      } 
      catch (Exception e) { 
       System.err.println ("Error reading from file"); 
      } 
     } 
    } 

    public static List<String> simplify(BufferedReader input) throws IOException { 
     String line = null; 
     List<String> myList = new ArrayList<String>(); 

     while ((line = input.readLine()) != null) { 
      myList.add(line.replaceAll("[^a-zA-Z0-9]","").toLowerCase().trim()); 
     } 
     return myList; 
    } 

} 

權,這是什麼不被打印出這樣的:

abcdefabcd123abcdz456aabcdd 

這個結果實際上是兩個獨立的文件,text1.txttext2.txt組合成的CMD一行。我需要的是將這兩個文檔進行標準化,然後將它們作爲單獨的元素打印出來,而不是將它們全部合併爲一個,因爲我需要將它們作爲下一部分的兩個單獨的東西(或對象)使用我的代碼。

希望這不是太混亂,你聰明的人可以幫助我!提前致謝!

+1

我竭力要正確地理解你的最終目標是在這裏。也許將您的預期輸出添加到原始問題將使其更清楚。 – arooaroo

+0

@arooaroo打印輸出只是一個測試。接下來我需要做的事情是將2個文檔分成n個字符塊(例如3)。這就是爲什麼我需要他們分開。 – user3364788

+0

我得到了問題,但你想做什麼喜歡。你想存儲text1.txt和text2.txt ...數據以不同的方式存儲我ri8? – loknath

回答

2

你只是打印出結果,所以它通過循環運行,它將全部打印在一行上。

你可以將結果保存在一個單獨的陣列,或者你可能只是這樣做有他們每個打印在另一條線路:

  for (int i = 0; i < args.length; i++) { 
       BufferedReader reader = new BufferedReader (new FileReader (args[i])); 
       List<String> foo = simplify(reader); 
        for (int j = 0; j < foo.size(); j++) { 
         System.out.print(foo.get(j)); 
        } 
       System.out.println(); 
      } 

新的println將每個條目分開。

0

由於使用了System.out.print(),所以它被打印到一行中,如果要爲每個輸出啓動一個新行,則只需使用System.out.println()。

但這只是輸出的一個問題。在內部,您已經將數據分隔在您的列表中,那麼您的實際問題是什麼?

+0

輸出只是測試它的測試。我的意思是,對於下一部分,我必須將兩個輸入文本文檔分成n個字符塊(例如3個)。所以我需要他們兩個分開,所以我可以分別對他們執行此任務 – user3364788

+1

但您已經有兩個單獨的文檔。 myList.get(0)是第一個文件,myList.get(1)是第二個文件。 –

+0

啊好吧..傻我,謝謝你的幫助:) – user3364788

2

檢查這個人會一行打印數據線

abcdefabcd123

abcdz456aabcdd

public static void main(String[] args) { 

    Plagiarism myPlag = new Plagiarism(); 

    if (args.length == 0) { 
     System.out.println("Error: No files input"); 
    } 
    else if (args.length > 0) { 
     try { 
      for (int i = 0; i < args.length; i++) { 
       BufferedReader reader = new BufferedReader (new FileReader (args[i])); 
       List<String> foo = simplify(reader); 
        for (int j = 0; j < foo.size(); j++) { 
         System.out.print(foo.get(j)); 
        } 
        System.out.println(); 
      } 
     } 
     catch (Exception e) { 
      System.err.println ("Error reading from file"); 
     } 
    } 
} 

public static List<String> simplify(BufferedReader input) throws IOException { 
    String line = null; 
    List<String> myList = new ArrayList<String>(); 

    while ((line = input.readLine()) != null) { 
     myList.add(line.replaceAll("[^a-zA-Z0-9]","").toLowerCase().trim()); 
    } 
    return myList; 
} 

}

0

如果你想保持在兩個不同的對象文件內容請執行下列操作..

List<ArrayList<String>> files = new ArrayList<ArrayList<String>>(); 

for (int i = 0; i < args.length; i++) { 
    BufferedReader reader = new BufferedReader (new FileReader (args[i])); 
    files.add(simplify(reader)); 

    for(ArrayList<String> al : files) 
    { 
     for (int j = 0; j < al.size(); j++) { 
      System.out.print(al.get(j)); 
     } 
      System.out.println(); 
    } 

} 

,改變你的第二個方法

public static ArrayList<String> simplify(BufferedReader input) throws IOException 
相關問題