gpt4 book ai didi

java - 我想将输入字符串分割为 "\n"

转载 作者:行者123 更新时间:2023-12-02 09:12:28 25 4
gpt4 key购买 nike

我想用“\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);
}
}

但是输出显示:线程“main”中的异常 java.lang.ArrayIndexOutOfBoundsException: 1 在 toy_interpreter.main(toy_interpreter.java:36)

你能帮我吗?

最佳答案

您正在 prog1.nextLine() 处读取单行,因此我不确定您在数组中期望有多少个对象,但从您的命名约定和错误代码中我感觉到您可能没有意识到数组开始于[0],而不是 [1]。

在你的情况下 split() 会将你的整行保存到 [0]。由于它在 lineend 结束,因此数组的长度为 1,因为 split() 不会为空元素创建另一个 String。您正在尝试访问 [1],它是数组的第二个元素,但该元素不存在。因此出现了 ArrayOutOfBoundsException!

如果您想将多行保存到程序,请确保不要只使用= 符号。它会用新字符串覆盖您以前的字符串。尝试使用 program += 进行重复使用,或使用 .concat() 方法。无论如何,Java 在编译期间都会处理相同的情况。就此而言,如果您计划根据用户输入构建多行字符串,您可能需要研究 StringBuilder 类。

关于java - 我想将输入字符串分割为 "\n",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59295792/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com