gpt4 book ai didi

java - 检查字符串是否包含由空格分隔的子字符串

转载 作者:行者123 更新时间:2023-11-30 06:32:28 25 4
gpt4 key购买 nike

我有两个字符串str,str2。两个字符串都有空格。我使用了 contains 方法,但它不适合这里,因为它只检查确切的字符。这里如何检查一个字符串是否是子字符串。

我已经使用下面的代码实现了它。因此,如果原始字符串中存在字符串“FOO BAR”,则代码中的函数将打印 true。

public static void main(String[] args) {
String str = "FOO BAR";
String str1 = "FOO T BAR";
String orignialString;
String stringToMatch;
if (str1.length() > str.length()) {
orignialString = str1;
stringToMatch = str;
} else {
orignialString = str1;
stringToMatch = str;
}
boolean flag = false;
String[] stringarr = stringToMatch.split(" ");
for (int i = 0; i < stringarr.length; i++) {
if (orignialString.contains(stringarr[i])) {
flag = true;
} else {
flag = false;
break;
}
}
System.out.println("IS SUBSTRING---> " + flag);
}

我正在寻找使用模式匹配器/正则表达式的更干净的短代码。

最佳答案

此答案假设您要将 FOO BAR 识别为 FOO T BAR 的子字符串,因为前者的所有单词也作为后者中的单词出现。使用这个逻辑,我们可以从两个字符串中的每一个形成单词列表,然后迭代以检查所有单词是否都存在。

boolean isSub = true;
String str = "FOO T BAR";
String str1 = "FOO BAR";
List<String> strList = Arrays.asList(str.split("\\s+"));
List<String> strSubList = Arrays.asList(str1.split("\\s+"));
for (String sub : strSubList) {
if (!strList.contains(sub)) {
isSub = false;
}
}

System.out.println("input is a substring: " + isSub);

Demo

关于java - 检查字符串是否包含由空格分隔的子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45837207/

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