Java 按分隔符拆分两个字符串并找到第一个公共值

Java 按分隔符拆分两个字符串并找到第一个公共值,java,regex,string,split,Java,Regex,String,Split,我有两个带分隔符的字符串。我想了解用分隔符分割字符串并找到第一个共享值的有效方法是什么 例如: String one = "the;boy;is;six;years;old" String two = "today;is;sunday" 结果是字符串“is” 我想到了以下两种方法: 使用分割法 public String match (String one, String two) { String[] oneArray = one.split(";"); String[] t

我有两个带分隔符的字符串。我想了解用分隔符分割字符串并找到第一个共享值的有效方法是什么

例如:

String one = "the;boy;is;six;years;old"
String two = "today;is;sunday"
结果是字符串
“is”

我想到了以下两种方法:

  • 使用分割法

    public String match (String one, String two) {
        String[] oneArray = one.split(";");
        String[] twoArray = two.split(";");
    
        for (String value1 : oneArray){
            for(String value2 : twoArray){
                if(value1.equals(value2)[
                    return value1;
                }
            }
        }
        return "";
    }
    
  • 使用正则表达式

    public static final Pattern pattern= Pattern.compile("\\;");
    
    private boolean match(String one, String two) {
    
        Matcher matcherOne = pattern.matcher(one);
        Matcher matcherTwo = pattern.matcher(two);
    
        //NOT SURE WHAT IS THE IMPLEMENTATION
        if (matcherOne.find().equals(matcherTwo.find()) {
    
        }
        return false;
    }
    

  • 谢谢。

    那么您的问题到底是什么?@Pshemo谢谢,拆分字符串并查找值的正确方法是什么?如果使用正则表达式,那么我应该如何使用它?使用自然API,如果想要拆分,则使用拆分。您的模式仅描述分隔符。此外,matcher还可以用于一次将模式应用于一个字符串。为什么要在这里使用图案/匹配器?我同意@JacekCz的观点,如果你想分割一些东西,请使用
    split
    方法。模式还允许我们以
    String[]tokens=yourDelimiterPattern.split(text)
    的方式在表示分隔符的正则表达式上拆分,但我不确定这是否是您要问的问题。@Pshemo我希望在拆分后使用contains检查值是否存在。字符串[]中不存在的。我不想再检查数组了。