【发布时间】:2019-12-11 23:49:53
【问题描述】:
我想用“\n”分割输入字符串,这是我的代码:
import java.util.ArrayList;
import java.util.Scanner;
public class toy_interpreter {
public static String program;
public static void getToyProgram() {
Scanner prog1 = new Scanner(System.in);
System.out.println("Please enter the toy program");
program = prog1.nextLine();
}
public static String[] splitList() {
return program.split("\n");
}
public static void main(String[] args) {
getToyProgram();
String[] parts = splitList();
String part1 = parts[1];
System.out.println(part1);
}
}
但输出显示: 线程“主”java.lang.ArrayIndexOutOfBoundsException 中的异常:1 在 toy_interpreter.main(toy_interpreter.java:36)
你能帮帮我吗?
【问题讨论】:
-
你只看了一行
program = prog1.nextLine();- 为什么你认为你可以拆分? -
您在程序中只读取一个输入行,因此您的输入中只有一个
\n,因此在您的数组中只有一个位置。如果你想从用户那里接收多个Strings,你应该使用循环 -
您在程序中只读取一个输入行,因此您的输入中只有一个
\n,因此在您的数组中只有一个位置。如果你想从用户那里接收多个Strings,你应该使用循环 -
@Henryli 这是一种输入字符串的有趣方式,哈哈。您是否尝试过更改拆分字符?就像输入 "A = 2;B = 8;C = A + B;C" 并用分号分割
-
也许这可以澄清一些事情:通常当人们谈论字符
'\n'(ascii table上的十进制10,意思是换行)时,它是一个字符,而不是字符串"\n"(ascii 92 110),它们是两个字符。注意:'与"。顺便说一句,没有人使用“\n”作为记录分隔符。如果你这样做,也许你会到达@sidgate 的方法,但我想,你无论如何都不想到达那里。
标签: java