我正在实施 DFA。给定的字母表是 {a, b}。
我有它告诉我输入字符串是否被接受。(它有一个简单的“接受”规则——输入字符串的第一个和最后一个字符必须相同)
不过,我想做的是检查输入字符串中的每个字符是否符合规定的“字母表”。
因此,作为布尔值,如果输入字符串为“abcdefg”(例如),它将返回 false ... 如果输入字符串为“abbaabbbba”(例如),它将返回 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
...这就是它所做的所有进一步检查。
我如何让它根据字母表检查整个输入字符串——输入字符串的每个字符?
就像我说的,我什至不记得到目前为止我尝试过的所有事情,但至少有十几个。我尝试的越多,我就越困惑。这感觉很简单,但我不确定如何让它工作。
LEATH
人到中年有点甜
相关分类