2017-04-05 18 views
-1

私はJavaでコーディングしています。文字列を分割したいと思います。私はそれを分割したい。アスタリスクと文字列を一致させる正規表現

/* sort */ 

はい、私はので、私は「/ *ソート* /」を含めることを必要とする文字列として読んだことが.javaファイルを分割する予定。私はJavaクラスファイルで事前定義されている配列をソートするコードを作成しています。

正確

ことと

} 

で別の分割を行い、その後、私は例がこの

だろう、私は

が残されますので、配列を分割については移動する方法を助けたかったです

final static String[] ANIMALS = new String[] /* sort */ { "eland", "antelope", "hippopotamus"}; 

私の目標は、その配列を.javaファイル内でソートして置き換えることです。これは私の現在のコードです

private void editFile() throws IOException { 
    //Loads the whole Text or java file into a String 
    try (BufferedReader br = new BufferedReader(new FileReader(fileChoice()))) { 
     StringBuilder sb = new StringBuilder(); 
     String line = br.readLine(); 

     while (line != null) { 
      sb.append(line); 
      sb.append(System.lineSeparator()); 
      line = br.readLine(); 
     } 
     everything = sb.toString(); 
    } 
    arrayCutOff = everything.split("////* sort *////"); 
    for(int i = 0; i < arrayCutOff.length; i++){ 
     System.out.println(arrayCutOff[i]); 
    } 
} 

これは基本的に完全な.txtまたは.javaファイルを完全に1つの文字列に完全に読み込みます。私は/ * sort * /で配列を分割して配列をソートすることを計画しましたが、もしそうすれば、おそらくそれを置き換えることはできません。

+0

何を言っているのですか、あなたは混乱します。あなたは少し例を使って説明してください。 –

+0

@ZubairNabiは例を与えたばかりです – Peerless

+1

正規表現で特殊文字をエスケープする方法を本当に尋ねていますか?あなたはウェブ上の*答えを見つけることができませんでしたか? – Andreas

答えて

1

your'reは、あなたがこの方向に行くかもしれないのJava 8を使用して考慮:それはそうリテラルをqouteます

private void editFile() throws IOException { 
    List<String> lines = Files.readAllLines(Paths.get(fileChoice())); 
    String content = lines.stream().collect(Collectors.joining(System.lineSeparator())); 
    Stream.of(content.split(Pattern.quote("/* sort */"))).forEach(System.out::println); 
} 

しかし、あなたが求めているトリックはPattern.quoteは、Javaの5を遡りますregExsのリテラルとして使用することができ、バックスラッシュで取り囲むよりもはるかに便利で(信頼できると思います)...

関連する問題