我试图解析具有管道分隔值的每一行的文件.当我没有在split方法中转义管道分隔符时,它无法正常工作,但是在我如下所示转义管道后它正常工作.
private ArrayList<String> parseLine(String line) {
ArrayList<String> list = new ArrayList<String>();
String[] list_str = line.split("\\|"); // note the escape "\\" here
System.out.println(list_str.length);
System.out.println(line);
for(String s:list_str) {
list.add(s);
System.out.print(s+ "|");
}
return list;
}
Run Code Online (Sandbox Code Playgroud)
有人可以解释为什么管道角色需要为split()方法转义?
我正在尝试编辑matlab文件并在某些特定行中替换一些编码部分init.但是,使用下面的格式进行更改它根本不会更改行上下文.(它将打印相同的旧行).知道我做错了什么吗?'replaceAll'不适合用行中的其他单词替换某些单词?
提前致谢.
try {
PrintWriter out = new PrintWriter(new FileWriter(filenew, true));
Scanner scanner = new Scanner(file);
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
if (line.contains("stream.Values(strmatch('Test',stream.Components,'exact'))") {
String newline = line.replaceAll("stream.Values(strmatch('Test',stream.Components,'exact'))", "New Data");
out.println(newline);
System.out.println(newline);
} else {
out.write(line);
out.write("\n");
}
} // while loop
out.flush();
out.close();
scanner.close();
} catch (IOException e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)