我想检查一个给定的字符串是否被利用给定的语法接受。验证语法
在控制台中,我得到异常错误是这样的:
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),这确实很重要,因为你已经阅读过这些内容,然后相应地更新你的问题:你要求其他人花时间帮助你,所以花时间确保它是你自己也是一个很好的问题。 –