使用 myString.split("\n") 时遇到问题;
Having problems using myString.split("\n");
我需要将一个输入字符串分成许多部分。拆分应该出现在“\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()
将正则表达式作为参数。当尝试使用正则表达式匹配文字反斜杠时,需要对其进行双重转义(一次用于正则表达式,一次用于字符串文字)。
您通过 readLine()
阅读的文本中不能有任何换行符。
因此 你一定是在寻找文字 \
后跟文字 n.
(为什么?)
Ergo 你必须为正则表达式编译器提供 两个 反斜杠,你必须为 Java编译器。总数:四个。
或者您只是在尝试不可能的事情,试图拆分不存在的换行符。也许输入已经通过调用 readLine()?
进行了充分的分割
我需要将一个输入字符串分成许多部分。拆分应该出现在“\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()
将正则表达式作为参数。当尝试使用正则表达式匹配文字反斜杠时,需要对其进行双重转义(一次用于正则表达式,一次用于字符串文字)。
您通过 readLine()
阅读的文本中不能有任何换行符。
因此 你一定是在寻找文字 \
后跟文字 n.
(为什么?)
Ergo 你必须为正则表达式编译器提供 两个 反斜杠,你必须为 Java编译器。总数:四个。
或者您只是在尝试不可能的事情,试图拆分不存在的换行符。也许输入已经通过调用 readLine()?