gpt4 book ai didi

Java:需要查看输入字符串中的每个字符是否与 "alphabet"中的任何字符匹配

转载 作者:行者123 更新时间:2023-11-30 05:37:14 26 4
gpt4 key购买 nike

我正在实现 DFA。给定的字母表是 {a, b}。

它告诉我输入字符串是否被接受。 (它有一个简单的“接受”规则——输入字符串的第一个和最后一个字符必须相同)

不过,我想做的是检查输入字符串中的每个字符是否符合规定的“字母表”。

因此,作为 boolean 值,如果输入字符串是“abcdefg”(例如),它将返回 false...如果输入字符串是“abbaabbbbba”(例如),它将返回 true

我需要检查 a 是否在字母表中...然后 b 是否在字母表中...然后 c 是否在字母表中...对于输入字符串中的每个字符依此类推。

我尝试过不同类型循环的变体,(我不记得每一个变体!)将 inputString.charAt(i) 与字母表中的每个字符进行比较......但到目前为止,没有任何东西像我需要的那样工作/想要它。

例如,现在我正在尝试:

  public boolean isInAlphabet(String inputString) {
if(inputString == " ") {
System.out.println(" -> empty string is not in our alphabet");
return false;
}

for(int i = 0; i < inputString.length(); i++) {
Character check = inputString.charAt(i);
System.out.print(check); // just to see what it's doing

if(check.equals(alphabet.charAt(0)) || check.equals(alphabet.charAt(1))) {
System.out.println(" -> your input string is in our alphabet");

return true;
}
else{
System.out.println(" -> your input string is *not* in our alphapet");
return false;
}
}
return false;
}

字母表示为:

String alphabet = "ab";

输入字符串如下:

String inputString = "abcdefg";

事情是,它在发现输入字符串中的第一个字符在字母表中后停止检查。

喜欢:

test input string: abcdefg
is test input string in our alphabet?
a -> your input string is in our alphabet

...这就是它所做的所有进一步检查。

如何让它根据字母表检查整个输入字符串 - 输入字符串的每个字符?

就像我说的,我什至不记得到目前为止我尝试过的所有事情,但至少有十几个。我尝试的越多,我就越困惑。这感觉很简单,但我不知道如何让它发挥作用。

最佳答案

我在这里假设如果alphabet包含inputString中的所有字符并且inputString的第一个和最后一个字符相同,那么它是有效的。

但例如,Alphabet = {a,b} 和 inputString="aaaaa"。因此,我假设此输入也有效。 (如果这就是您正在寻找的,那么您可以使用以下逻辑来解决它。)我使用 HashSet 作为字母表,然后我们可以迭代整个字符串并检查字母表是否包含它。下面的代码用于将字母字符串转换为 HashSet。

    String str="ab";
for(char ch:str.toCharArray()){
alphabet.add(ch);
}

现在,要实现检查输入是否有效的方法,您可以考虑以下代码。

public boolean isInAlphabet(String inputString) {
if(inputString==null || inputString.length()==0) return false;
if(inputString.charAt(0)!=inputString.charAt(inputString.length()-1)) return false;
for(char ch:inputString.toCharArray()){
if(!alphabet.contains(ch)) return false;
}
return true;
}

关于Java:需要查看输入字符串中的每个字符是否与 "alphabet"中的任何字符匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56351977/

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