Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java按字将行拆分为2行_Java_Split - Fatal编程技术网

Java按字将行拆分为2行

Java按字将行拆分为2行,java,split,Java,Split,我得到了这两行,其中第二行在“a”之后有一个制表符 a b C d a[tab]b c d 我想要的结果是: First Line: "a", " bcd" Second Line: "a", "[tab]b c d" 我只需要使用一个拆分函数,并且我已经尝试了拆分(\\s+”,2),但它没有按预期工作。您必须使用“\t”进行拆分,因为\t用于制表符\s表示任何空格,因此它包含空格。要保留选项卡或空格,您需要使用“向前看”,并按如下方式拆分: String[] split =

我得到了这两行,其中第二行在“a”之后有一个制表符

    a b C d
    a[tab]b c d
我想要的结果是:

First Line: "a", " bcd"
Second Line: "a", "[tab]b c d"

我只需要使用一个拆分函数,并且我已经尝试了
拆分(\\s+”,2)
,但它没有按预期工作。

您必须使用“\t”进行拆分,因为\t用于制表符\s表示任何空格,因此它包含空格。

要保留选项卡或空格,您需要使用“向前看”,并按如下方式拆分:

String[] split = input.split("(?=\\s+)", 2);
完整演示:

List<String> inputs = Arrays.asList("a b C d", "a    b c d");
for (String input : inputs) {
    String[] split = input.split("(?=\\s+)", 2);
    for (String part : split) {
        System.out.format("Split string is '%s'%n", part);
    }
}
试试这个

String[] a = s.split("(?<=^\\w+)\\s+");

String[]a=s.split(“(?”它没有按预期工作”)并没有告诉我们它做了什么…split(\\s+”,2)给我这个结果:第一行:“a”,“bcd”第二行:“a”,“b c d”“Mike,给出一个例子并不是问题的充分定义。你也可以解释你想要如何分割。正如你从@BheshGurung中可以看到的,这很容易有多个解释,不同的例子会产生不同的结果,但这个例子的结果相同。如果我使用”\t,您好”,我会得到>第一行:“abcd”>第二行:“a”,“b c d”他想在空格或制表符上拆分,
\s
在这里就可以了。谢谢。这就是我想要的。@mike了解更多信息,以及你问题的大意:
String[] a = s.split("(?<=^\\w+)\\s+");