Сплит Java-строки в Rhino - PullRequest
0 голосов
/ 24 июня 2009

Я пытаюсь разбить строку Java в программе Rhino javascript

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

, которые дают мне ошибку

js: Can't find method java.lang.String.split().

В документации Rhino упоминается, что все методы javascript String.prototype (такие как match, split и т. Д.) Доступны в строке java, если они еще не предоставлены java.lang.String. Есть идеи, что здесь происходит?

Ответы [ 5 ]

3 голосов
/ 24 июня 2009

Посмотрите на документы Java: http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html

Кажется, не является конструктором с 0 параметрами для метода split. Вы должны передать это регулярное выражение.

Кроме того, для дальнейшего пояснения метод split возвращает строковый массив, он не является пустым методом, как вы использовали его в своем примере кода.

2 голосов
/ 29 октября 2011

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
2 голосов
/ 24 июня 2009

split принимает аргумент, который является регулярным выражением, которое вы хотите использовать для разделения ваших токенов.

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

1 голос
/ 07 февраля 2012

Не совсем тот же контекст, но может кому-то помочь.

Я использую функцию JavaScript split () в Rhino.

Чтобы все заработало, я следую схеме:

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

Полагаю, что "" + заставляет Rhino использовать тип String в JavaScript.

Когда я забываю добавить "" +, я получаю сообщение

TypeError: split is not a function.
0 голосов
/ 24 июня 2009

Возможно, вы используете его неправильно.
Для разделения не требуется строковый параметр?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...