0

我正在尝试在 Rhino javascript 程序中拆分 java 字符串

var s = new java.lang.String("1 2 3");
s.split();

这给了我错误

js:找不到方法 java.lang.String.split()。

Rhino 文档提到,如果 java.lang.String 尚未提供所有 javascript String.prototype 方法(如 match、split 等),它们都可以在 java string 上使用。关于这里发生了什么的任何想法?

4

5 回答 5

3

查看 Java 文档:http: //java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html

似乎不是 split 方法的 0 参数构造函数。你必须给它一个正则表达式。

此外,为了进一步说明, split 方法返回一个字符串数组,它不像您在示例代码中使用它的方式那样是一个 void 方法。

于 2009-06-24T06:26:21.747 回答
2

split 接受一个参数,该参数是您要用于拆分标记的正则表达式。

http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html

于 2009-06-24T06:27:02.757 回答
2

Rhino 仅提供java.lang.String缺少的方法,split显然不是其中之一。

为了使用 JavaScript 的实现split,您必须将 Java 字符串转换为 JavaScript 之一:

var s = String(new java.lang.String("1 2 3"));
// Also valid: var s = "" + new java.lang.String("1 2 3");
print(s.split()); // 1 2 3
于 2011-10-29T09:26:16.503 回答
1

不完全相同的上下文,但可能会帮助某人。

我在 Rhino 中使用 JavaScript 函数 split()。

为了让事情顺利进行,我遵循以下模式:

var l_VAR = "" + some_function();
var l_VARs = l_VAR.split("%%");

我想 "" + 强制 Rhino 使用 JavaScript 类型的字符串。

当我忘记添加“”+时,我收到了消息

TypeError: split is not a function.
于 2012-02-07T15:45:10.970 回答
0

可能是您使用不正确。
split 不需要字符串参数吗?

于 2009-06-24T06:26:10.263 回答