gpt4 book ai didi

java - 在 Java 中将字符的值与字符数组中的值进行比较?

转载 作者:行者123 更新时间:2023-12-02 09:27:17 25 4
gpt4 key购买 nike

我有一个字符数组。我正在为我的代码中的几个用户输入单词搜索辅音、元音、辅音的模式,即使我在本例中只有一个。有没有办法查看字符串中的字符是否与数组中的任何字符匹配。有没有更好的方法来看待问题?我知道我可以在 if 语句中列出所有可能性,但我正在寻找更快的方法。


char[] carray= new char[] {'t','z','r','v'};
char[] varray= new char[] {'t','z','r','v'};
String stringy = "rival";
`for( int n=0;n<= stringy.length-2;n++){
if(stringy.charAt(n)== "any character in carray" && stringy.charAt(n+1)=="any character in varray" && stringy.charAt(n+2)=="any char in carray" ) {
//code
}
}

最佳答案

由于您正在“寻找一种更快的方法”来“搜索辅音、元音、辅音的模式”,因此请忘记数组并使用正则表达式:

if (stringy.matches(".*(?i)[^aeiou][aeiou][^aeiou].*")) {
// string contains pattern of consonant then vowel then consonant
}

正则表达式引擎非常快,因为它们是通过为模式构建状态机来实现的。没有更快的执行方法来实现您想要的。

编写代码也更快,因为需要编写的代码少得多。

<小时/>

如果您有用户输入字符串的集合,要查找所有与您的目标模式匹配的字符串:

List<String> userInputStrings;

List<String> matchingStrings = userInputStrings.stream()
.filter(str -> str.matches(".*(?i)[^aeiou][aeiou][^aeiou].*"))
.collect(Collectors.toList());

关于java - 在 Java 中将字符的值与字符数组中的值进行比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58261829/

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