Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.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拆分(“Java拆分”)不适用于带空格的字符串_Java_Split - Fatal编程技术网

Java拆分(“Java拆分”)不适用于带空格的字符串

Java拆分(“Java拆分”)不适用于带空格的字符串,java,split,Java,Split,对于下面的输入,我希望所有以“|”分隔的字符串都可以在数组中使用。但只有第一个字符串可用,而下一个字符串部分可用。其余字符串根本不可用。请帮助我理解它。我浏览了所有的帮助文档和以前的stackoverflow内容,但无法解决它。我也尝试过split(stringregex,int-limit),但没有用。我不想替换空白,因为我需要保留它 输入“1 |纽约| 1345 | 134 | 45634” 预计产量为:1,纽约,134513445634 实际产量为:1,新 public class tes

对于下面的输入,我希望所有以“|”分隔的字符串都可以在数组中使用。但只有第一个字符串可用,而下一个字符串部分可用。其余字符串根本不可用。请帮助我理解它。我浏览了所有的帮助文档和以前的stackoverflow内容,但无法解决它。我也尝试过split(stringregex,int-limit),但没有用。我不想替换空白,因为我需要保留它

输入“1 |纽约| 1345 | 134 | 45634” 预计产量为:1,纽约,134513445634 实际产量为:1,新

public class test1 {

    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);
        String strinp=scanner.next();
        //System.out.println(strinp.replaceAll(" ", ""));
        String[] strArr=strinp.split("\\|");
        //System.out.println(Arrays.deepToString(strArr));
        for (String s:strArr) {
            System.out.println(s);

        }
    }

}
scanner.next()
在空格本身上拆分。因此,您的第一个
scanner.next()
调用将读取
1 | New
,然后将其拆分

使用scanner.nextLine()读取整行,它将被成功拆分。

更改:

String strinp = scanner.next();
致:


或者,您可以将扫描仪声明为:

Scanner scanner = new Scanner(System.in).useDelimiter("\\n");

嗯,这里生成您的预期输出:String strinp=“1 | New York | 1345 | 134 | 45634”;字符串[]strArr=strinp.split(“\\\\”);对于(String s:strArr){System.out.println(s)}public static void main(String[]args){Scanner Scanner=new Scanner(System.in);strinp=Scanner.nextLine();strinp=strinp.replace(''124;',',');System.out.println(strinp)}输入:“1 |纽约| 1345 | 134 | 45634”输出:“1,纽约,1345134455634”你比我快
Scanner scanner = new Scanner(System.in).useDelimiter("\\n");