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