Java 如何使用管道符号作为分隔符拆分字符串值?

Java 如何使用管道符号作为分隔符拆分字符串值?,java,regex,Java,Regex,我需要使用管道符号“|”拆分字符串 在这种情况下,我可以拆分字符串值,但如果 如果“项目符号编号”大于(0-9),则只打印编号的第一位数字 示例:如果输入为11。欢迎使用java编程 它将打印1欢迎使用java编程 这是到目前为止我的代码 public static void main(String[] args) { String split_vls = "11. Welcome1. to java programming |1. Oops concepts |12. Encapsu

我需要使用管道符号“|”拆分字符串

在这种情况下,我可以拆分字符串值,但如果 如果“项目符号编号”大于(0-9),则只打印编号的第一位数字

示例:如果输入为
11。欢迎使用java编程
它将打印
1欢迎使用java编程

这是到目前为止我的代码

public static void main(String[] args) {

    String split_vls = "11. Welcome1. to java programming |1. Oops concepts |12. Encapsulation |3.Abstraction  |14.Inheritance  |5.Polymorphism";
    String[] Numeric_split = split_vls.split("\\|*(\\d+\\.)\\s*");
    for (String pipes_Split : Numeric_split) {
        System.out.println(pipes_Split);
    }
}
这是我得到的输出:

java编程 面向对象的概念 封装 抽象
继承
多态的

这是预期输出:

欢迎使用java编程
面向对象的概念
封装
抽象
继承
多态的


您将获得字符串中的值

您的字符串:

String split_vls = "11. Welcome to java programming |1. Oops concepts |12. Encapsulation |3.Abstraction  |14.Inheritance  |5.Polymorphism";
试试这个:

StringTokenizer st= new StringTokenizer(split_vls, "|");
while (st.hasMoreElements()) {
    System.out.println(st.nextToken());
}
输出:

十一,。欢迎使用java编程
1.面向对象的概念
12封装
3.抽象
14.继承
5.多态性

或:

输出:

欢迎使用java编程
面向对象的概念
封装
抽象
继承
多态性


问题是,表达式在
|
之间正好有一个“单词字符”。您需要允许“一个或多个”:


但我的预期结果是:前面没有任何数字或子弹。欢迎来到java编程Oops概念封装抽象继承多态性,如果我有类似于:11的句子中的“.”。欢迎到Java编程。这是一个分裂的句子。在这种情况下,无法实现例外输出
欢迎使用java编程Oops概念封装抽象继承多态性
@Chola您可以将
\\w
替换为
\\d
,以避免匹配字母()。先生,如果我添加任何新的数字和“.”,我对您在问题中的回答做了一些更改。它完全删除了前面的“欢迎”一词。请检查我的问题。给我一个解决方案。
String[] Numeric_split = split_vls.split("\\|*(\\w+\\.)\\s*");
for (String pipes_Split : Numeric_split) {
    System.out.println(pipes_Split);
}
String[] Numeric_split = split_vls.split("\\|*(\\w+\\.)\\s*");
//                                                ^