2017-11-29 12 views
-1

ファイルを開いたままファイルの長さにかかわらずファイルを1行ずつ読み込むメソッドを作成しようとしています。各行は単語と句読点(アポストロフィを除く)に分割され、文字列のArrayListに格納されます。これらの行を表すこれらのArrayListは、StringのArrayListのArrayListに格納されます。arraylistのarraylistとファイルを1行ずつ読みます - Java

たとえば、ファイルが含まれている場合。

Hello World! 
Hi, hello. 

最初の配列リストには、 "Hello"、 "World"、 "!"という文字列が含まれています。 2番目の配列リストには、 "Hi"、 "、"、 "hello"、 "。"

これまでのところ、私は以下のことがあり、正しい方向に進んでいるかどうかはわかりません。コードの下

public static void readInputFile(String fileName, ArrayList<ArrayList<String>> fileByLine) 
    throws IOException { 

    File userFile = new File(fileName); 

    try { 
     if (userFile.exists()) { 
      Scanner fileScanner = new Scanner(userFile); 
      do { 
       do { 
        fileByLine.add(fileScanner.next()); 
       } while (fileScanner.next() != null); 
      } while (fileScanner.hasNext()); 
     } 
    } catch (Exception e) { 
     System.out.println("Exception: File '" + fileName + "' not found."); 
    } 
} 
+1

サイトの仕組みやトピックについての質問はこちら(http://stackoverflow.com/tour)、それに応じて質問を編集してください。参考:[小規模プログラムのデバッグ方法](https://ericlippert.com/2014/03/05/how-to-debug-small-programs/) –

答えて

0

は..あなたが試すことができ、私の作品

public class ListOFList { 

    public static ArrayList<String> stringspecial(String strLine) { 
     String str = strLine; 
     String arr[]=str.split(" "); 

     ArrayList<String> list = new ArrayList<String>(); 

      for(int i=0;i<arr.length;i++) { 
       Pattern pattern = Pattern.compile("[a-zA-Z0-9]*"); 
       Matcher matcher = pattern.matcher(arr[i]); 


      if (!matcher.matches()) { 
       char[] ch = arr[i].toCharArray(); 
       String substring=""; 

       for(int j=0;j<ch.length;j++) { 


        if(!(Character.isLetter(ch[j]))) { 
         String special = Character.toString(ch[j]); 
         list.add(special); 
        }else { 
         substring=substring+ch[j]; 
         if(!(Character.isLetter(ch[j+1]))) { 
          list.add(substring); 
        } 

        } 
       } 


      } else { 
       list.add(arr[i]); 

      } 

    } 
      return list; 
    } 

    public static void main(String[] args) throws IOException { 
     // TODO Auto-generated method stub 

     FileInputStream fi = new FileInputStream("<Path of the Input Text File>"); 
     BufferedReader br = new BufferedReader(new InputStreamReader(fi)); 
     String strLine; 
     ArrayList<ArrayList<String>> listoflists = new ArrayList<ArrayList<String>>(); 
     ArrayList<String> list = new ArrayList<String>(); 
     while ((strLine = br.readLine()) != null) { 
      list=stringspecial(strLine); 
      listoflists.add(new ArrayList(list)); 
      list.clear();  
       } 
     for(int x = 0; x < listoflists.size(); x++) 
     { 

       System.out.print(listoflists.get(x)); 
       System.out.print(" "); 

     } 

     br.close(); 

       } 

     } 

INPUT:

のHello World!こんにちは、こんにちは。 Hello World!こんにちは、こんにちは。 Hello World!こんにちは、こんにちは。

OUTPUT:[。こんにちは、,,こんにちは、]

[!こんにちは、世界、] [こんにちは、世界!] [こんにちは、,,こんにちは、。] [こんにちは、世界!] [こんにちは、,,こんにちは、。]

関連する問題