2017-04-05 187 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完全相同的格式完全文件分割成一個字符串。我計劃將它分成/ * sort * /並對數組進行排序,但是我意識到如果我這樣做了,我可能無法替換它。

+0

你想說什麼,你聽起來很困惑。你能用一個例子多解釋一下嗎? –

+0

@ZubairNabi只是舉了一個例子 – Peerless

+1

你真的問如何逃避正則表達式中的特殊字符嗎?您無法在網絡上找到*任何*答案? – Andreas

回答

1

your're使用Java 8你可能會去這個方向考慮:

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的它會qoute字面所以可以用作regExs中的文字,並且比摔跤帶反斜槓更方便(可靠,我認爲)...