Опитвам се да разделям java низ в програма на Rhino javascript
var s = new java.lang.String("1 2 3");
s.split();
които ми дават грешката
js: Не може да се намери метод java.lang.String.split ().
Документите на Rhino споменаха, че всички javascriptМетодите String.prototype (като съвпадение, разделяне и т.н.) са налични на java string, ако те вече не са предоставени от java.lang.String.
Отговори:
3 за отговор № 1Обърнете внимание на документите на Java: http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html
Не изглежда да е конструктор с 0 параметъра за метода на разделяне. Трябва да го предавате на нормален израз.
Също така, за по-нататъшно изясняване, сплит методът връща масив от низове, това не е невалиден метод, подобен на начина, по който го използвате във вашия примерен код.
2 за отговор № 2
split приема аргумент, който е регулярният израз, който искате да използвате, за да разделите вашите символи.
http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html
2 за отговор № 3
Rhino осигурява само методите, които java.lang.String
липсва и split
очевидно не е един от тях.
За да използвате JavaScript 's изпълнението на 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
1 за отговор № 4
Не съвсем същият контекст, но може да помогне на някой.
Използвам JavaScript функцията split () в Rhino.
За да работим, следвам модела:
var l_VAR = "" + some_function();
var l_VARs = l_VAR.split("%%");
Предполагам, че "" + принуждава Rhino да използва JavaScript тип String.
Когато забравя да добавя "" + тогава получих съобщението
TypeError: split is not a function.
0 за отговор № 5
Възможно е да го използвате неправилно.
Не се ли разделя изискването за параметър за низ?