我有两种类型的字符串。一种是"abcdEfgh""abcd efgh"。这意味着第一个字符串之间有大写字母,第二个字符串之间有空格。因此,现在我该如何在Java中检查这两个模式字符串并制作两个字符串。

String givenString;

if (givenString.equals("abcdEfgh")) {
   String str1 = abcd;
   String str2 = Efgh;
} else (givenString.equals("abcd efgh") {
   String str1 = abcd;
   String str2 = efgh;
}

请提供解决方案
谢谢

最佳答案

您可以使用正则表达式\\s|(?=[A-Z])进行拆分

  • \\s是处理空格的情况。
  • (?=[A-Z])是积极的前瞻性。它找到大写字母,但在拆分时保留定界符。


  • String givenString;
    String split[] = givenString.split("\\s|(?=[A-Z])");
    String str1 = split[0];
    String str2 = split[1];
    

    对于两种情况

    测试用例1
    //case 1
    givenString = "abcdEfgh";
    str1 = abcd
    str2 = Efgh
    

    测试用例2
    //case 2
    givenString = "abcd efgh";
    str1 = abcd
    str2 = efgh
    

    关于java - 如何在Java中拆分字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42575100/

    10-09 04:42