Problem mit Forward-Slash in Java-String?!

mcdroemmel

Mitglied
Hallo zusammen,

ich bin da zufällig auf ein ganz grundlegendes und merkwürdiges Phänomen bei der Verwendung des Forward(Vorwärts)-Slash in einem Java-String gestoßen.
Will man einen Backslash in Strings verwenden muss man den escapen, ist mir klar.
Mit einem Forward-Slash war mir das nicht bekannt.

Folgendes kleines Testschnipsel:
Code:
String s1 = "abc";
String s2 = s1 + "/SXYZ";

Liefert mir im Debugger (und in der originalen Anwendungslogik) den String "abcSXYZ"

Code:
String s1 = "abc";
String s2 = s1 + "/" +"SXYZ";

Liefert erst das erwartete Ergebnis "abc/SXYZ"

Hat da jemand eine Erklärung dafür ?

Gruß
McD
 
Zuletzt bearbeitet:
Hallo,

dein Problem hat mit Java nichts zu tun ist daher in diesem Unterforum falsch.
Java != Javascript

@Moderator: Bitte verschieben ;)

Hier kann ich dir leider nicht weiterhelfen, kenne mich mit Javascript nicht so gut aus.

Gruß
BK
 
Wieso gehst du von JavaScript aus?

Das ist schon pure Java (JRE 5) wovon ich rede..!
Allerdings ist die Virtual Maschine nicht von Sun sondern von SAP (SAP Netweaver 7.1 Application Server)

McD
 
hat die Bratkartoffel vermutlich wegen dem "var" so erkannt. Zugegeben, ich hätte das auch als JavaScript-Code abgestempelt. "Normales" Java ist das aber wohl kaum.
Unter Java würde der Code so aussehen:
Java:
String s1 = "abc";
String s2 = s1 + "/SXYZ";
String s3 = s1 + "/" +"SXYZ";

// zum Testen:
System.out.println(s2);
System.out.println(s3);
und die Ausgabe
Code:
abc/SXYZ
abc/SXYZ
 
ich gehe hier auch eher von ner verschmelzung von java und javascript aus da das ganze ja laut namen ein application server sein soll ...
was mich hier nut grundlegend stört ist das es Java 5 ist ...

wann kam Java 6 Final raus ? ... vor nem jahr oder sowas ? ... also wer noch mit 5 oder sogar 1.4 arbeitet sollte sich so langsam mal echt für n update entscheiden ... zu mal java 7 schon im prerelease is ...
 
Boh Leute,

Sorry. Das mit dem var muss natürlich nicht sein, kommt wohl daher weil ich sonst auch noch Javascript entwickle. Hab ich dann auch mal korrigiert.

@gnodeftest
Bis auf das var statt String ist dein Code doch prinzipiell das gleiche in Grün wie meiner.
Ich hatte ihn nur nicht so "schön" gemacht weil er schlicht kein nicht der Original-Code aus meiner Anwendung ist sondern ich nur das Problem veranschaulichen wollte.
Ausserdem hab ich das im Debugger gesehen, weil System.out.println() auf einem App-Server nicht unbedingt gemacht wird. Da arbeite ich mit der Logger-Klasse. Damit wollte ich das Beispiel aber nicht zusätzlich aufblähen.


@SPiKEe
Der Code wo mir das passiert ist läuft auf einem JE55-Server der SAP AG. Zwischen JDK 1.4 (und damit auch JEE2) liegen aus meiner Sicht Welten. Zwischen Java5 (und damit JEE5 im App-Server-Umfeld) und Java6 gibts natürlich auch Unterschiede, aber aus meiner bescheidenen Sicht nicht so krasse wie vorher.
Ausserdem ist es bei Business-Anwendungen nicht unbedingt usus (und auch schlicht nicht immer machbar) immer gleich auf den neuesten Zug zu springen der vorbei fährt.
Jedenfalls ist der Java-App-Server der SAP noch JEE5 basierend. Auch das aktuelle (und sogar das kommende) Release basieren auf JEE5 (JEE5).

Leider muss ich aber feststellen, dass substantiell meine eigentliche Frage bisher nicht beantwortet wurde.

Grüße
McD
 
ja gut schön und toll ...
aber ich glaube keiner hier wird sich freiwillig v5EE ziehen nur um den bug zu bestätigen ...
aber das is wieder mal typischer kapitalismus ... anstatt sich n unternehmen mal n paar euro kosten lässt um ne eigene software zu entwickeln rennen sie alle gleich zu SAP und bezahlen sich dumm und dämlich ...
in diesem fall kann ich nur sagen : frag nicht in öffentlichen foren was da kaputt is sonder mal den SAP-JEE5 support dierekt ... weil scheinbar dort die ursache liegt
und wenn du so viel mit JS proggst und dann in java code JS schlüsselwörter benutzt dann wundere dich nich das dich alle gleich abschieben mit der zeile : java != javascript ... also bist du an unseren reaktionen auf deinen vermeintlichen JS code selbst schuld ... *layer-8*

btw : der einfache normale schrägstrich heißt einfach nur SLASH
und der umgedrehte einfach BACKSLASH ... wäre schön wenn du dierekte fachwörter nutzt und nich wie n anfänger drumrum redest ...
 
@SPiKEe
Was machst du hier so ein Fass auf? Bist du unterzuckert? Du kennst mich überhaupt nicht und hast keine Ahnung von dem was ich tue und was ich bin. Dennoch scheint es dir was zu bringen mich blöd anzumachen. Leider mal wieder ein typischer Fall von Foren-Profilierung.
Was hat das mit Kapitalismus zu tun das wir SAP-Software einsetzen. Auch da kennst du doch keinen Grund warum wir die Software von denen einsetzen. Ist für uns absolut die beste Entscheidung gewesen (obwohl ich selbst kein SAP und erst Recht kein Abap-Freund bin).

Ehrlich gesagt fand ich das Phänomen eher interessant und wollte mal fragen ob jemanden das auch schon mal vor die Flinte gekommen ist. Nicht mehr und nicht weniger. Würde von keinem erwarten sich da ne alte JRE zu ziehen und das jetzt zu testen. Also locker bleiben.

Und falls du mal in der englischen Literatur nachschlägst oder googelst, wird sehr wohl zwecks der eindeutigen Unterscheidung oftmals vom Forward-Slash gesprochen weil es genug Leute gibt die Slash auch mit Backslash gleichsetzen (obwohl natürlich Slash allein als Bezeichnug auch korrekt ist, damit ist meine Konkretisierung aber nicht falsch).

Für mich ist das Thema erst mal erledigt.
 
@spikee Dir empfehle ich mal die Netiquette, vor allem Punkt 15 und 16:rolleyes:

Das mit dem Slash ist mir noch nie untergekommen. Eventuell wird der String auf eine Weise weiterverarbeitet, in dem /S ein bestimmtes Muster ist, z.B. ein Flag? Ich glaube da das vollkommen aus dem Kontext gerissen ist, kann man hier kaum was dazu sagen... Wie genodeftest es schon schrieb: Es sollte so auf jeden Fall funktionieren.
 
Hi,

meiner Erfahrung nach (und ein paar kleine Tests eben) bestätigen, was Tim Bureck meint. So was ist mir auch noch nicht unter gekommen.

Versuche aber mal das ganze mit nem StringBuilder zu machen, taucht hier das Problem auch auf?

Gruß
BK
 

Neue Beiträge

Zurück