2016-07-14 8 views
-3

Ich habe diese Saite ('ROLE_Failed, ROLE_USER')
Wie kann ich COMMA ersetzen mit '' so dass der Ausgang
wie sein ('ROLE_Failed', 'ROLE_USER')Groovy Wie kann ich COMMA ersetzen ''

Update:
groovy ('authentication.principal.roles.roleName.join ("") ')
Above Anweisung gibt mir: (' ROLE_Failed, R OLE_USER ')
Wie kann ich die obige Aussage aktualisiert, so dass es mich gibt
(' ROLE_Failed‘, 'ROLE_USER')

Ich habe versucht, was unten vorgeschlagen wird, ist meine Aussage: groovy ('authentication.principal.roles.roleName.join ("") .replace (', ' "', '")')

Ausnahme ich erhalte:
unerwartetes Token: @ Zeile 1, Spalte 60. s.roleName.join (",") .replace (

+1

Dieser Artikel bezieht sich nicht auf JasperReports Server.Es geht nur um groovige Erfahrung: 'Wie kann ich COMMA durch 'ersetzen,' –

+0

@AlexK Ich bin ein Jasper-Typ und habe keine Ahnung von groovigen brauchen Eingaben bei der Lösung dieses Problems? – GeekExplorer

Antwort

3
​"('ROLE_Failed,ROLE_USER')".replace(",", "','")​​​​​​​​​​​​​​ 
+0

Hallo, danke fürs Antworten. Ich bekomme folgende Ausnahme: org.codehouse.groovy.control.MultipleCompilationErrorsException. Müssen wir eine Escape-Sequenz verwenden? – GeekExplorer

+1

Jeremies Code funktioniert wie oben. Wenn Sie Kompilierungsfehler haben, stammen sie nicht von dieser Zeile. – Fels

+0

@GeekExplorer Die obige Zeile funktionierte für mich. Können Sie den gesamten Code posten, damit wir das Problem finden? –

1

Die Antwort von Jeremie B ist richtig. Ich denke jedoch, dass Sie immer noch Ausnahmen vom Kopieren-und-Einfügen-Problem treffen können.

den Code unten vor: der zweite der erste Test erfolgreich war, tat es nicht: Example of problem code

Wie Sie unterschiedliche Ergebnisse sehen können, kann der „gleiche“ Code erzeugen. Wenn ich den Code manuell erneut eintippe, tritt das Problem nicht auf.

Vermutlich tritt dieser Fehler auf, wenn Sie den Code von außerhalb der Quelle kopieren, kann ein Zeichenkonvertierungsproblem unter der Haube passieren, die Ihren Charakter "oder" immer noch gleich aussehen, ist aber inhärent ein anderes Symbol. Deshalb ist der Compiler . klagt

-Code in Text für Ihre Referenz (nicht sicher Problem kann durch Kopieren Sie diesen Text wiedergegeben werden, wie so die Post-Codierung standardisieren kann)

def str = "('ROLE_Failed,ROLE_USER')" 
println str 
def a = str.replace(',',"','") 
println a 
//------------------------------------- 
def str2 = "('ROLE_Failed,ROLE_USER')" 
println str2 
def ab = str2.replace(',',"','")​​​​​​​​ 
println ab 

EDIT nach Frage aktualisiert:

Der Code:

Ich habe versucht, was vorgeschlagen wird, ist unten meine Aussage: groovy ('authentication.principal.roles.roleName.join (" ") .replace (', ', „‘, ‚")‘)

Wenn ich es richtig sehen, gibt es einen leeren Raum rechts hinter dem Komma. So muss der Code geschrieben werden:

authentication.principal.roles.roleName.join(", ").replace(', ',"','") 
+0

Nach dem Testen: Kopieren Sie den Code in dieser Antwort kann dieses interessante Ergebnis, genau wie im Bild –

+0

@Long Ihr Snippet funktioniert, aber in meinem Fall funktioniert es nicht. Ich habe die Frage aktualisiert, bitte schauen Sie hinein. – GeekExplorer

+1

Hallo @GeekExplorer, bitte überprüfen Sie meine Bearbeitung ... Es ist ein Leerzeichen nach dem Komma? –