Я реализую DFA.Данный алфавит: {a, b}.
Я получил сообщение о том, принята ли входная строка или нет.(у него есть простое правило «принять» - первый и последний символ входной строки должен быть одинаковым)
Однако я пытаюсь проверить, есть ли каждый символ во входной строке, допускается в соответствии с предписанным «алфавитом».
Таким образом, в качестве логического значения он возвращает false, если входная строка имеет значение «abcdefg» (например) ..., и возвращает true, если входная строкаэто «abbaabbbbba» (например)
Мне нужно проверить, есть ли буква 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
... и это все дальнейшая проверка, которую он делает.
Как мне получить, чтобы проверить всю входную строку - каждый символвходной строки, против алфавита?
Как я уже сказал, я даже не могу вспомнить все, что я пробовал до сих пор, но это было по крайней мере дюжина.Чем больше я стараюсь, тем больше путаюсь.Это так просто, но я не уверен, как заставить это работать.