السلام عليكم ورحمه الله وبركاته ..
لوسمحتوا اريد مساعدتكم وسأرفق لكم محاولتي ...
المطلوب انه لما المستخدم يخل بيانات يقوم البرنامج بفصل كل شي بمفرده ويخبر المستخدم اسمه مثلا"
المستخدم ادخل " int a,y;
البرنامج لازم يظهر للمستخدم التالي :
int is a keyword
a is an identifier
, is separator
y is identifier
; is terminator
يعني البرناامج يقووم بعمل lexical analyzer
اانتظر ردودكم وربي يوووفق الجميع
وهنا محاولتي .... تحيااتي
import java.util.Scanner;public class lexical{ public static int i,c; public static String exp; public static final String id = "[a-z A-Z][a-z A-Z | 0-9]*"; public static void main(String args[]){ Scanner s=new Scanner(System.in); String[] key={"int","double","String","float"}; String[] operator={"+","-","*","/","="}; String[] comma={","}; String[] terminator={";"}; System.out.print("Enter decleration : "); exp=s.nextLine(); String[] array=exp.split(" "); for(i=0;i<array.length;i++) { //for keyword for(c=0;c<key.length;c++) { if(array.contains(key[c])) { System.out.println(key[c] +" is a keyword"); } } //for operator for(c=0;c<operator.length;c++) { if(array.contains(operator[c])) { System.out.println(operator[c] +" is an operator"); } } //for identifier if(array.matches(id)) { System.out.println(array+" is an identifier"); } //for comma for(c=0;c<comma.length;c++) { if(array.contains(comma[c])) { System.out.println(comma[c]+" is a comma"); } } //for terminator for(c=0;c<terminator.length;c++) { if(array.contains(terminator[c])) { System.out.println(terminator[c]+" is a terminator"); } } } }}