java - 使用 myString.split 时遇到问题 ("\n");

标签 java string io split newline

我需要将一个输入字符串分成许多部分。拆分应该出现在“\n”(字面意思是反斜杠-n,而不是换行符)。 例如,我想把这个:

x = [2,0,5,5]\ny = [0,2,4,4]\ndraw y #0000ff\ny = y & x\ndraw y #ff0000

进入这个:

x = [2,0,5,5]
y = [0,2,4,4]
draw y #0000ff
y = y & x
draw y #ff0000

我原以为 stringArray = string.split("\n"); 就足够了。

但它给我的输出与以下代码中的输入相同:

public static void main(String[] args) throws IOException{
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    System.out.print("Enter Input\n");
    String s = br.readLine();
    NewInterpreter interpreter = new NewInterpreter(s);
    interpreter.run();
}

public NewInterpreter(String input) {
    this.input = input;
    this.index = 0;
    this.inputComponents = input.split("\n");
    System.out.println("Output: ");
    for(String s : inputComponents)
        System.out.println(s);
}
Enter Input
x = [2,0,5,5]\ny = [0,2,4,4]\ndraw x #00ff00\ndraw y #0000ff\ny = y & x\ndraw y #ff0000"
Output: 
x = [2,0,5,5]\ny = [0,2,4,4]\ndraw x #00ff00\ndraw y #0000ff\ny = y & x\ndraw y #ff0000

非常感谢任何帮助,谢谢!

最佳答案

如果您按字面意义输入 \n(即与换行符相反),则需要按如下方式拆分:

string.split("\\\\n");

复杂的原因是 split() 将正则表达式作为参数。当尝试使用正则表达式匹配文字反斜杠时,需要对其进行双重转义(一次用于正则表达式,一次用于字符串文字)。

关于java - 使用 myString.split 时遇到问题 ("\n");,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29886583/

相关文章:

java - Java 中的 PermGen 空间

java - 使用 Gson pretty-print JSON 字符串的问题

regex - 当定界符出现在字符串的开头时,在 Perl 中使用正则表达式拆分字符串

c# - 字符串数组 C# 与 C++ dll 的互操作性;从 C# 到 C++ dll 的字符串数组,它设置数据并将其发送回 c#

io.netty.channel.AbstractChannel$AnnotatedConnectException : Connection Time out: No further Information:

java - tomcat 将它被指示读取的文件保存在哪里?

java - 在 Java 中反转字符,同时保留一些字符

perl - 使 sed 不按行缓冲

Java 无法使用 ProcessBuilder 运行 Exec Jar

使用percentHeight时javafx 2 gridpane行重叠