我用Java编码,我想分割我的字符串。我想把它分开。
/* sort */
是的我打算将我读过的.java文件拆分为字符串,这样我就需要包含" / * sort * /"。我正在创建一个代码来排序在java类文件中预定义的数组。
正是这样,并在
做另一次分裂}
然后我想要帮助如何拆分数组,因为我会留下
一个例子就是这个
final static String[] ANIMALS = new String[] /* sort */ { "eland", "antelope", "hippopotamus"};
我的目标是在.java文件中对该Array进行排序并替换它。这是我目前的代码
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 :(得分:2)
考虑到您使用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.它会输入一个文字,因此它可以在regExs中用作文字并且更多一些我认为方便(而且我认为可靠)比用反斜杠摔跤......