如何在java中拆分间距和|

如何在java中拆分间距和|,java,split,delimiter,Java,Split,Delimiter,我现在很难同时拆分这两个代码,因为我正在尝试拆分下面的代码 皇家骑警|彩色恶魔|洋红色拳击手 NUPI |数字选择器|随机数 库菲|快速手指|数字化 这是我的方法。它对其他人有效,但因为这个有间隔,我现在有麻烦了 while (input.hasNext()) { str = input.nextLine(); temp = str.split("\\s|\\|") System.out.println(temp[0]) // should print RCMP

我现在很难同时拆分这两个代码,因为我正在尝试拆分下面的代码

皇家骑警|彩色恶魔|洋红色拳击手

NUPI |数字选择器|随机数

库菲|快速手指|数字化

这是我的方法。它对其他人有效,但因为这个有间隔,我现在有麻烦了

while (input.hasNext()) {
    str = input.nextLine();

    temp = str.split("\\s|\\|")

    System.out.println(temp[0]) // should print RCMP


    // Array out of bounds error
    System.out.println(temp[1]) // should print COLOUR

    Game game = new Game(temp[0],(temp[1]+temp[2]),(temp[3] + temp[4]))
}
我想要的预期输出是这样或更好的

RCMP-温度[0]

颜色-温度[1]

恶魔-温度[2]

洋红-温度[3]

拳击手-临时工[4]

这样我就可以将它们存储到游戏中

当我试图打印应该是彩色的temp[1]时,它会给出一个数组越界错误,而不是使用

scan.nextLine()
获取字符串

并使用正则表达式进行拆分:

yourString.split("\\s|\\|");
例如:RCMP | COLOR Demon |洋红拳击手这一行会:

{"RCMP", "Colour", "Demon", "Magenta", "Boxer"}

代码没有正确分割,但它实际上是\\和\\s+,但它仍然没有按我想要的方式打印temp 0,1等的预期输出是什么?当前打印是什么?预期输出类似于此代码颜色恶魔洋红色拳击手现在我尝试打印temp[1]时出现数组越界错误另外,看起来您想在|上拆分,那么拆分\\ |有什么问题吗?我刚才拆分了它,当我尝试打印应该是颜色的temp[1]时,它给了我一个数组越界错误instead@user1879973确保使用整行输入字符串。下一行;not input.next返回一个单词。@user1879973显示您的实际代码、实际数据,并描述您希望从中获得的输出,解释此输出背后的逻辑。现在我开始怀疑,您可能只想简单地将Scanners delimiter设置为[\\s |]+并简单地使用whileinput.hasNext{String token=input.next;}数据是文本文件吗?是的,必须是-\我最好删除我的答案