2014-12-07 81 views
-3

如果输入x = y + 5检查我的逻辑错误,请

,输出必须是:

Token 1 is x is identifier 
Token 2 is = 
Token 3 is y is identifier 
Token 4 is + 
Token 5 is 5 

,这是我没有我不知道什么是错在我,如果条件代码!

char[] ident = {'x','y','z','a','b','c','k'}; 

Scanner sc = new Scanner(System.in); 
System.out.println("Please Enter Your String"); 
String x = sc.nextLine(); 


StringTokenizer t = new StringTokenizer(x); 

for (int k = 0; k < ident.length; k++) { 
    for (int j = 1; j < x.length()+1; j++) { 
     char m = x.charAt(j); 


     if (m==ident[k]) { 

      System.out.println("Token " + j + " is " + t.nextToken()+" is identifier"); 

     } else { 
      System.out.println("Token " + j + " is " + t.nextToken()); 
     } 

    } 

} 
+0

有什么问题? – SMA 2014-12-07 17:04:47

+0

运行代码知道问题:D – 2014-12-07 17:13:31

回答

0

你不需要两个循环nether StringTokenizer。你可以这样做:

final String str = new String(ident); 
char m; 
for (int j = 0; j < x.length(); j++) { 
    m = x.charAt(j); 
    if (str.indexOf(m) >= 0) { 
     System.out.println("Token " + j + " is " + m+" is identifier"); 
    } else { 
     System.out.println("Token " + j + " is " + m); 
    } 
} 
+0

omg ty! :D和好主意不要使用字符串标记符^ _^ – 2014-12-07 17:22:19

+0

不客气。如果您认为它有帮助,请接受答案来关闭此问题,以便其他人可以在不久的将来将其用作参考。 – SMA 2014-12-07 17:23:25

+0

完成mate thx再次:) :) – 2014-12-07 17:27:09