js的字符串数组赋值为java函数返回值
时间: 2024-04-30 19:23:18 浏览: 105
由于JS和Java是两种不同的语言,不能直接赋值。需要通过中间的接口来实现。
可以使用Java中的ScriptEngineManager和ScriptEngine来执行JS代码,将JS字符串数组作为参数传入JS函数中,并将函数返回值赋值给Java变量。
示例代码:
```java
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
public class Main {
public static void main(String[] args) throws ScriptException {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("JavaScript");
// 定义JS字符串数组
String[] strArr = {"hello", "world"};
// 定义JS函数
String jsFunc = "function concat(arr) { return arr.join(','); }";
// 执行JS函数并将结果赋值给Java变量
String result = (String) engine.eval(jsFunc + " concat(" + toJSArray(strArr) + ")");
System.out.println(result); // 输出:hello,world
}
// 将Java字符串数组转换为JS字符串数组
private static String toJSArray(String[] arr) {
StringBuilder sb = new StringBuilder();
sb.append("[");
for (int i = 0; i < arr.length; i++) {
sb.append("\"").append(arr[i]).append("\"");
if (i != arr.length - 1) {
sb.append(",");
}
}
sb.append("]");
return sb.toString();
}
}
```
阅读全文