2014-12-07 2 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

+0

введите код, чтобы узнать о проблеме: D –

ответ

0

Вам не нужны две петли нижнего шнура. Вы можете сделать это как:

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 и хорошая идея не использовать строковый токенизатор^_^ –

+0

Добро пожаловать. Пожалуйста, закройте этот вопрос, приняв ответ, если считаете, что он помогает, чтобы другие могли использовать его в качестве ссылки в ближайшем будущем. – SMA

+0

done mate thx alot again :) :) –

Смежные вопросы