gpt4 book ai didi

java - 字符串是子字符串的组合吗?

转载 作者:行者123 更新时间:2023-12-03 04:13:05 25 4
gpt4 key购买 nike

给定两个字符串,如果大字符串是小字符串的组合,我的函数应该返回 true,否则返回 false。即

cat 和 catcatcatcat 将返回 truecat 和 catdogcatcat 将返回 false

我不确定为什么它不起作用或者我的逻辑是否正确。

public static boolean isCat(String s, String y) {
int yl= y.length();
int counter= 0;

for (int i= 0; i < s.length(); i++ ) {
char[] ychar= y.toCharArray();
char[] subchar= s.substring(counter, counter + yl).toCharArray();
if (Arrays.equals(ychar, subchar) == true) {
counter+= yl;
return true;
}
}
return true;
}

最佳答案

更简单的方法是 replace()子字符串的所有实例都有空字符串,并检查结果字符串是否为空。

public class Test {
public static void main(String[] args) {
System.out.println(isCat("catcatcat", "cat")); // "true"
System.out.println(isCat("cacatcatt", "cat")); // "false"
}

public static boolean isCat(String full, String sub) {
return sub.isEmpty() || !full.isEmpty() && full.replace(sub, "").isEmpty();
}
}

或者,使用正则表达式检查字符串 matches() 是否为子字符串的倍数:

public static boolean isCat(String full, String sub) {
return full.matches("(\\Q" + sub + "\\E)+");
}

关于java - 字符串是子字符串的组合吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58071891/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com