Marcel: Mehrzeiliger String

gerade nocheinmal...Hallo,

1. Wie krieg ich's hin in Java einen mehrzeiligen String zu deklarieren, z.B. so?:

String s = "Halloooooo
           Absatz....";

in C# kann man das mit einem vorangestellten @. Wie gehts in Java?

Kann man in Java Werte in Strings auch auf ähnliche Art wie in C# ersetzen? In c# geht's so:

string c = "Hallo {0}, ich heisse {1}";
c.Format(c, "Dein Name", "Mein Name");

Gruss Marcel

  1. Hallo Marcel,

    String s = "Halloooooo
               Absatz....";

    Absätze kannst Du natürlich mit \n kodieren. Strings über mehrere Zeilen schreiben kannst Du nicht. Das würde aber mit den meisten Style Guides sowieso Probleme geben.

    Kann man in Java Werte in Strings auch auf ähnliche Art wie in C# ersetzen? In c# geht's so:

    Ab Java 1.5beta hat PrintStream eine Methode printf mit der so etwas geht.
    Bislang geht es nicht. Du könntest aber reguläre Ausdrücke verwenden, wenn Du Deinen String nicht so zusammenbauen kannst.

    Grüße

    Daniel

    1. Ok, vielen Dank für deine Antworten.

      Microsoft hat da meiner Meinung nach die Nase ein bisschen vorn...

      1. Hallo Marcel,

        Microsoft hat da meiner Meinung nach die Nase ein bisschen vorn...

        Meiner Meinung nicht.
        Bei Java wurde immer auch darauf geachtet, die Sprache nicht unnötig zu verkomplizieren. Solche Features wie spezielle Syntax für Mehrzeilige Strings sind solche Features, die keinen echten Mehrwert bringen.
        So Dinge wie beschränkte, generische Typen, wie sie die neuste Version von Java nun einführt, sind da hingegen ein echter Fortschritt, auch wenn es da durchaus Leute gibt, die meinen, das würde Java zu komplex machen.

        Grüße

        Daniel

    2. Hallo,

      Absätze kannst Du natürlich mit \n kodieren. Strings über mehrere Zeilen schreiben kannst Du nicht. Das würde aber mit den meisten Style Guides sowieso Probleme geben.

      Wenn Du einen mehrzeiligen String für ein J-Component brauchst, dann kannst Du auch den HTML-Tag <br> benutzen.

      Kann man in Java Werte in Strings auch auf ähnliche Art wie in C# ersetzen? In c# geht's so:
      Ab Java 1.5beta hat PrintStream eine Methode printf mit der so etwas geht.
      Bislang geht es nicht. Du könntest aber reguläre Ausdrücke verwenden, wenn Du Deinen String nicht so zusammenbauen kannst.

      Naja. Das geht aber jetzt schon und bequemer mit java.text.MessageFormat. Die Syntax sollte so ähnlich sein wie in C#

      Gruß
         MichaelB

      1. Hallo MichaelB,

        Naja. Das geht aber jetzt schon und bequemer mit java.text.MessageFormat. Die Syntax sollte so ähnlich sein wie in C#

        Oh, das tolle an den viele Javaklassen ist, dass man immer mal wieder was neues entdeckt ;-)

        Grüße

        Daniel

      2. Hi,

        Absätze kannst Du natürlich mit \n kodieren. Strings über mehrere Zeilen schreiben kannst Du nicht. Das würde aber mit den meisten Style Guides sowieso Probleme geben.
        Wenn Du einen mehrzeiligen String für ein J-Component brauchst, dann kannst Du auch den HTML-Tag <br> benutzen.

        Frage: Muss man, um die Komponente zur HTML-Interpretation zu bewegen, nicht noch die unklammernden HTML-Tags verwenden?

        Also: <html>text-fragment<br>text-fragment</html>
        Ich meine mich zu erinneren, dass dies zumindest bei JLabel erforderlich sei.

        Viele Grüße,
        Martin Jung

        1. Hallo,

          Frage: Muss man, um die Komponente zur HTML-Interpretation zu bewegen, nicht noch die unklammernden HTML-Tags verwenden?

          Also: <html>text-fragment<br>text-fragment</html>
          Ich meine mich zu erinneren, dass dies zumindest bei JLabel erforderlich sei.

          Kann durchaus sein. Ich habe von dieser Möglichkeit selbst bisher noch keinen Gebrauch gemacht sondern sie nur schon in anderen Quelltexten gesehen. Und ich glaube mich erinnern zu können, dass dort ein umklammerndes <HTML>...</HTML> verwendet wurde. Insofern könntest Du Recht haben.

          Gruß
            MichaelB