2009-06-24 11 views
0

Ich versuche, eine Java-Zeichenfolge in einem Rhino zu spalten JavaScript-ProgrammSplit Java-Strings in Rhino

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

, die mir geben den Fehler

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

Die Rhino docs erwähnt, dass alle JavaScript-String .prototype-Methoden (wie "match", "split" usw.) sind für die Java-Zeichenfolge verfügbar, wenn sie nicht bereits von java.lang.String bereitgestellt werden. Irgendwelche Ideen, was hier vor sich geht?

Antwort

3

Werfen Sie einen Blick auf die Java-Dokumentation: http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html

kein 0 Parameter Konstruktor für die Split-Methode zu sein scheint. Du musst es einen regulären Ausdruck übergeben.

Zur weiteren Erläuterung gibt die Methode "split" ein Zeichenfolgenarray zurück, das keine void-Methode ist, wie Sie es in Ihrem Beispielcode verwendet haben.

0

Es kann sein, dass Sie es falsch verwenden.
Benötigt Split nicht einen String-Parameter?

2

Rhino nur die Methoden bereitstellt, die java.lang.String fehlt und split ist offensichtlich nicht einer von ihnen.

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

nicht genau das gleiche Kontext, aber jemand helfen kann:

Um JavaScript-Implementierung von split zu verwenden, müssen Sie Java String in JavaScript ein konvertieren.

Ich benutze die JavaScript-Funktion split() in Rhino.

Dinge zum Laufen zu bringen, folge ich dem Muster:

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

Ich nehme an, dass "" + Kräfte Rhino einen JavaScript-Typ String zu verwenden.

Wenn ich vergessen, hinzuzufügen „“ + dann bekam ich die Nachricht

TypeError: split is not a function.