2

我正在尝试将字符串拆分为不同的组,但我没有此任务的经验。所以我需要一个正则表达式,它在 Java 中将原始字符串分为两组

我的文本示例是:

卡尔卡尼卡尔卡尼

我想要:

  • 第 1 组: 钙

  • 第 2 组:kalkani(或者,如果可能,kalkani)

知道如何创建这种模式吗?

谢谢!

4

5 回答 5

1
  String x="calcani k a l k a n i";
    String []x1=x.split(" ",2);
    System.out.println(x1[0]);
    System.out.println(x1[1]);

输出

calcani
k a l k a n i

如果你想要像下面这样的输出

calcani
kalkani

然后使用

String x="calcani k a l k a n i";
        String []x1=x.split(" ",2);
        System.out.println(x1[0]);
        System.out.println(x1[1].toString().replace(" ", ""));
于 2013-10-18T09:29:20.600 回答
1

为什么是正则表达式。只需实现这个逻辑:

  1. 搜索第一个空格并在第一个空格的左侧取子字符串
  2. 第一个空格右侧的其余字符串是您的第二个匹配项,此时如果您想删除所有可以使用的空格:

    String repl = str.replace(" ", "");
    
于 2013-10-18T09:29:24.633 回答
0

使用方法中的第二个参数String.split()来控制拆分字符串生成的最大子字符串数:

String[] temp = "calcani k a l k a n i".split(" ", 2);
于 2013-10-18T09:31:43.330 回答
0

您将获得两个字符串,如下所示:

 String[] results = "calcani k a l k a n i".split(" ", 2);
//remove spaces from second group
 String secondGroup=result[1];
 secondGroup=secondGroup.replaceAll(" ","");
 System.out.println("result[0] ->"+result[0]);
 System.out.println("result[1] ->"+result[1]);

输出

result[0] ->calcani
result[1] ->kalkani
于 2013-10-18T09:33:03.337 回答
0

尝试这个,

    String[] results = "calcani k a l k a n i".split(" ", 2);
    System.out.println(results[0]);
    System.out.println(results[1].replace(" ", ""));
于 2013-10-18T09:34:34.467 回答