我想檢查一個給定的字符串是否被利用給定的語法接受。驗證語法
在控制檯中,我得到異常錯誤是這樣的:
Enter your string
aab
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
at first.lab3.main(lab3.java:15)
這是我的代碼:
package first;
import java.util.Scanner;
public class lab3 {
public static void main(String args[]) {
Scanner str = new Scanner(System.in);
System.out.print("The grammer is : S->AB, A->aA, A->a,B->Bb,B->b\n ");
System.out.print("Enter your string\n ");
char[] charArray = str.nextLine().trim().toCharArray();
int count, flag;
if (charArray[0] == 'a') {
{
flag = 0;
}
for (count = 0; charArray[count] != ' '; count++) {
if (charArray[count] == 'b') {
flag = 1;
continue;
}
if ((flag == 1) && (charArray[count] == 'a')) {
System.out.println("Sring is not accepted");
break;
}
if (charArray[count] == 'a') {
continue;
}
if (flag == 1 && charArray[count] == ' ') {
System.out.println("The string is accepted");
break;
}
}
} else {
System.out.println("String is not accepted ");
}
}
}
哪裏是我的錯?
「不工作」是什麼意思?它不是編譯,拋出異常,還是給出不正確的結果? – resueman
「這是行不通的」......請指出是否編譯錯誤是不是在做你想做的事情? – brld
請仔細閱讀過[「我怎麼問一個很好的問題」(HTTP://計算器。com/help/how-to-ask),這確實很重要,因爲你已經閱讀過這些內容,然後相應地更新你的問題:你要求其他人花時間幫助你,所以花時間確保它是你自己也是一個很好的問題。 –