Java Split ("\\|") 不适用于带空格的字符串

标签 java split

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

输入“1|纽约|1345|134|45634” 预期输出为:1,New York,1345,134,45634 实际输出为:1,New

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()读取整行,分割成功。

关于Java Split ("\\|") 不适用于带空格的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47611553/

相关文章:

java - Android 数据绑定(bind) : ConcurrentModificationException while using ternary operator in method parameter

c# - 在 C# 中使用正则表达式拆分字符串上的标记

java - 如何使用 java bean 的参数化属性名称和类型列表

java - 在没有 Firebase 控制台的情况下向所有设备发送推送通知

java - 如何在 Selenium Webdriver 3 中为 Firefox 驱动程序设置默认配置文件?

java - 如何在 java 中按数据类型拆分字符串?

list - F#:递归函数:将列表分为两个相等的部分

java - 无法访问 localhost 中的 Tomcat 默认页面 :8080 for Ubuntu 16. 04 Docker 容器

python - 在 python 3.4.1 的 string 模块中找不到 split() 方法或替换方法?

linux - 使用 tar 命令将文件拆分为特定大小