2016-11-27 3 views
0
So far I did is 

import java.io.File; 
import java.io.FileNotFoundException; 
import java.io.IOException; 
import java.util.Scanner; 
public class project2 { 
    public static void main(String[] args) throws IOException { 
     File file =new File("D:/log/logging.log"); 
     Scanner in = null; 
     try { 
      in = new Scanner(file); 
      while(in.hasNext()) 
      { 
       String line=in.nextLine(); 
        if(line.contains("")) 
         System.out.println(line); 
      } 
     } catch (FileNotFoundException e) { 
      e.printStackTrace(); 
     } 
    } 

} 
public class Example(
    public enum Searchword { 
     info,debug 
    }} 

行に列挙型の値のいずれかが含まれているかどうかを調べる必要があります。それを検索する方法とそれを行う方法は可能ですか?それが列挙型を作成するときにJavaコンパイラは、いくつかのメソッドが追加されますファイルが行単位で読み込まれ、行に列挙型の値が含まれている場合に行を印刷する

: - java.nioとJava 8つのストリームの使用

+0

(line.contains( ""))場合は、この行とはどういう意味ですか? – xFighter

+0

あなたは、たとえば、 '名前()enum定数の'メソッドを使用することができます 'SearchWord.info.name()'。 –

答えて

2

は、宣言的なアプローチは、いくつかのaditional情報をより完全な答えとして

import java.nio.file.*; 
import java.util.stream.Stream; 

public class Main { 

    enum Search { info, debug } 

    public static void main(String[] args) throws Exception { 
     Path path = Paths.get("pathToFile"); 

     Files.lines(path) 
      .filter(Main::containsSearchTerm) 
      .forEach(System.out::println); 
    } 

    public static boolean containsSearchTerm(String input) { 
     return Stream.of(Search.values()) 
        .map(Search::name) 
        .anyMatch(input::contains); 
    } 
} 
0

あります。これらの方法の一つは、これは、すべての列挙値の配列を返す()

静的.valuesあります。

また列挙の文字列表現を返すメンバメソッド.nameの()を作成します。あなたは、すべてのライン毎列挙型の値とラインが列挙型の文字列表現が含まれている場合、それを印刷の上にループをすることができますこれらの2つの方法を使用して

関連する問題