使用ScriptEnging在java中计算字符串
下面是我的代码,使用户输入hello或鼠标并搜索字符串(稍后我将在更大的文本文件上使用) 我使用它来创建一行使用contains方法的Java代码。之后,我需要对它进行评估。我找到了一些使用脚本引擎的帮助,但我一直遇到这样的错误:使用ScriptEnging在java中计算字符串,java,scriptengine,Java,Scriptengine,下面是我的代码,使用户输入hello或鼠标并搜索字符串(稍后我将在更大的文本文件上使用) 我使用它来创建一行使用contains方法的Java代码。之后,我需要对它进行评估。我找到了一些使用脚本引擎的帮助,但我一直遇到这样的错误:线程“main”javax.Script中的异常。ScriptException:ReferenceError:“name”未在第1行定义我要计算的代码的输出是name.contains(“hello”)| name.contains(“鼠标”) 任何帮助都会很好。谢谢
线程“main”javax.Script中的异常。ScriptException:ReferenceError:“name”未在第1行定义
我要计算的代码的输出是name.contains(“hello”)| name.contains(“鼠标”)
任何帮助都会很好。谢谢
public static void main(String args[]) throws ScriptException {
String searchString = "name";
String terms = "(hello) || (mouse)";
String command = "";
//multiple commands
if(terms.contains("(") && terms.contains(")") && terms.contains("[") && terms.contains("]")){
command = terms.replace(")","\")");
command=command.replace("(", searchString + ".contains(\"");
command = command.replace("[","(");
command = command.replace("]",")");
}
//only ands/ only ors
else {
command = terms.replace("(", searchString + ".contains(\"");
command = command.replace(")", "\")");
}
System.out.println(command);
String name = "mousehellonamepe";
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("js");
Object result = engine.eval(command);
System.out.println(result);
你到底想做什么 =======更新====== 首先,字符串术语应该是一个列表 让它:
ArrayList<String> searchTerms = new ArrayList();
这将输出以下内容:
Our list contains the word mouse
代码应该如下所示:
public static void main(String args[]) throws ScriptException {
ArrayList<String> searchTerms = new ArrayList();
arr.add("Hello");
arr.add("Mouse");
arr.add("Bike");
arr.add("House");
boolean mouseExists = arr.contains("Mouse");
if (ans)
System.out.println("Our list contains the word mouse");
else
System.out.println("Our list does not contain the word mouse");
}
publicstaticvoidmain(字符串args[])引发脚本异常{
ArrayList searchTerms=新建ArrayList();
arr.add(“你好”);
arr.add(“鼠标”);
arr.add(“自行车”);
arr.add(“房屋”);
布尔mouseExists=arr.contains(“鼠标”);
如果(ans)
System.out.println(“我们的列表包含单词mouse”);
其他的
System.out.println(“我们的列表不包含单词mouse”);
}
我用它来评估命令。
上面的链接提供了所有的解释 将输入作为搜索词,使其成为一段java代码,然后使用contains方法搜索字符串(名称)以查看是否有这些搜索词。请使用评论部分。我无法使用评论部分,因为我需要达到级别50:)让我知道这是否有帮助?谢谢,但是我需要根据用户的需要使用&&和| |。此外,输入需要来自操作用户,因此我不能简单地使用列表。谢谢你!
public static void main(String args[]) throws ScriptException {
ArrayList<String> searchTerms = new ArrayList();
arr.add("Hello");
arr.add("Mouse");
arr.add("Bike");
arr.add("House");
boolean mouseExists = arr.contains("Mouse");
if (ans)
System.out.println("Our list contains the word mouse");
else
System.out.println("Our list does not contain the word mouse");
}
Interpreter i = new Interpreter();
i.set("searchThis", searchString);
i.set("answer", i.eval(command));
Boolean answer2 = (Boolean) (i.get("answer"));