gpt4 book ai didi

java - 如何在字符串数组中查找最大的字符串

转载 作者:行者123 更新时间:2023-12-02 00:48:49 24 4
gpt4 key购买 nike

我需要从字符串数组中找到最大的字符串,并且还想确保出现的字符串应仅包含在单独字符串中定义的那些字符。

例如:如果字符串数组包含{"ABCAD","ABC","ABCFHG","AB"}另一个字符串 S 有字符 "ABCD"

那么这里返回的最大字符串应该是ABCAD,因为它只包含S中定义的字符。

public String findstring(String a, String[] arr)
{
String s="";
for(i=0; i<arr.length; i++)
{
//int m=0;

if(arr[i].length() > s.length())
{
s = arr[i];

}
}

for(j=0; j<s.length(); j++)
{
int m=0;
for(k=0; k<a.length(); k++)
{
if(m>0)
{
break;
}
if((s.charAt(j)==a.charAt(k)))
{
m++;
}
else
{
continue;
}
}
if(m==0)
{
List<String> list = new ArrayList<String>(Arrays.asList(arr));
list.remove(s);
arr = list.toArray(new String[0]);
findstring("ABCD", arr);
}

}
return s;
}
}

我没有收到任何错误,并且得到的最大字符串为 ABCFABCD,而需要排除 F,最大字符串应为 ABCAA。它跳过所有检查,不知道为什么?

最佳答案

您可以使用正则表达式以更好的方式做到这一点:

public String findstring(final String a, final String[] arr) {
String s = "";
// Created pattern of the characters available in the String
final Pattern p = Pattern.compile("^[" + a + "]*$");

for (int i = 0; i < arr.length; i++) {

if (p.matcher(arr[i]).matches()) {

if ("".equals(s)) {
s = arr[i];
} else if (arr[i].length() > s.length()) {
s = arr[i];
}
}

}

return s;
}

关于java - 如何在字符串数组中查找最大的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57875694/

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