2012-09-01 146 views
3

我試圖在BeanShell中運行簡單的腳本

運行一個簡單的switch-case語句時,BeanShell的newbie-得到錯誤

這是代碼我想run--

temp = assignee.toString(); 
switch(temp.toString()) 
{ 
case 'missing' : check = "missing"; break; 
case '404' : check = "404"; break; 
default: check = "data"; break; 
} 

但我得到以下錯誤 -

ERROR - Error during script execution: Sourced file: inline evaluation of: ``temp = assignee.toString(); switch(temp.toString()) { case 'missing' : check = . . . '' Token Parsing Error: Lexical error at line 3, column 8. Encountered: "i" (105), after : "\'m" 
org.webharvest.exception.ScriptException: Error during script execution: Sourced file: inline evaluation of: ``temp = assignee.toString(); switch(temp.toString()) { case 'missing' : check = . . . '' Token Parsing Error: Lexical error at line 3, column 8. 
Encountered: "i" (105), after : "\'m" 
at org.webharvest.runtime.scripting.BeanShellScriptEngine.eval(Unknown Source) 

我在做什麼錯在這裏?我如何解決這個錯誤?在BeanShell的

回答

2

字符串文字,就像在Java中,必須使用雙引號,而不是單引號:

 
bsh % x = 'missing'; 
// Error: Error parsing input: bsh.TokenMgrError: Lexical error at line 1, column 37. Encountered: "i" (105), after : "\'m" 
bsh % x = "missing"; 
bsh % print(x); 
missing 
bsh % 

單引號字符文字。對於多字符字符串使用單引號會導致出現錯誤,如Encountered: "i" (105), after : "\'m",這是因爲BeanShell在m(結束字符字面量)之後期待着另一個',但它取而代之的是i