Java 如何在不删除字符的情况下拆分字符(正则表达式)

Java 如何在不删除字符的情况下拆分字符(正则表达式),java,regex,string,split,Java,Regex,String,Split,我想在某个点拆分字符串,但保留拆分时使用的字符。例如: Input: a:b Output: a : b 我是否可以在Java的split()方法中使用它? 谢谢:)快速解决我的问题 首先将其从要拆分的角色中拆分 用另一个字符串将其连接起来,如下所示 现在,使用\uuuuuuuuuuuuuuuu \uuuuuuuuuuuuuuuuuuuuuuu只是一个字符串,我确信它不存在于字符串中。根据您的用例,您也可以使用任何其他子字符串 时间复杂度的顺序O(3*N) 例如 您的字符串是a:b 将其拆分

我想在某个点拆分字符串,但保留拆分时使用的字符。例如:

Input:
a:b

Output:
a
:
b
我是否可以在Java的split()方法中使用它?
谢谢:)

快速解决我的问题

  • 首先将其从要拆分的角色中拆分
  • 用另一个字符串将其连接起来,如下所示
  • 现在,使用
    \uuuuuuuuuuuuuuuu
  • \uuuuuuuuuuuuuuuuuuuuuuu
    只是一个字符串,我确信它不存在于字符串中。根据您的用例,您也可以使用任何其他子字符串

    时间复杂度的顺序
    O(3*N)

    例如

    您的字符串是
    a:b

  • 将其拆分为

    得到的字符串数组是[“a”,“b”]

  • 加入
    \uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu

    您得到的字符串是a:\u b

  • 使用
    再次拆分

    您将获得[“a”、“:”、“b”](所需输出)


  • 只是给出一个想法。

    您可以在Java中使用
    StringTokenizer

    Scanner  = new Scanner(System.in);
    String input = s.next();
    for (String str : input.split()) {
      System.out.println(str);
      System.out.println(":");
    }
    
    StringTokenizer stk = new StringTokenizer(inputStr,":", true);
    

    这将返回标记和分隔符。

    为什么不将拆分变量连接回输出?有很多方法可以实现。你需要更具体地说明
    在某一点拆分字符串的部分。谢谢你,这正是我要找的,但我找不到那篇文章。