3

我正在尝试在 Beanshell 中运行一个简单的 switch-case 语句

这是我试图运行的代码——

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)

我在这里做错了什么?如何解决此错误?

4

1 回答 1

2

BeanShell 中的字符串文字,就像在 Java 中一样,必须使用双引号,而不是单引号:

bsh % x = '失踪';
// 错误:解析输入错误:bsh.TokenMgrError:第 1 行第 37 列出现词法错误。遇到:“i”(105),后:“\'m”
bsh % x = "失踪";
bsh % 打印(x);
失踪
百分百

单引号用于字符文字。对多字符字符串使用单引号会给您一个错误,例如Encountered: "i" (105), after : "\'m", 这是因为 BeanShell在(结束字符文字)'之后期待另一个错误,但它却得到了。mi

于 2012-09-01T22:00:48.327 回答