正则表达式分离字符串

时间:2013-10-18 09:27:02

标签: java regex

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

我的文字样本是:

  

calcani k a l k a n i

我想要:

  • 第1组:calcani

  • 第2组:k a l k a n i(或者,如果可能的话,kalkani)

有关如何创建此模式的想法吗?

谢谢!

5 个答案:

答案 0 :(得分: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(" ", ""));

答案 1 :(得分:1)

为何选择正则表达式。只需实现这个逻辑:

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

    String repl = str.replace(" ", "");
    

答案 2 :(得分:0)

使用second argument in the String.split() method来控制通过拆分字符串生成的最大子串数:

String[] temp = "calcani k a l k a n i".split(" ", 2);

答案 3 :(得分: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

答案 4 :(得分:0)

试试这个,

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