Johannes: String in Asciicode konvertieren

char[] testchar = teststring.toCharArray();
System.out.println("Test=" + testchar);

Eigentlich wollte ich damit ja den String in Ascii-Code als Zahlen umgewandelt herausbekommen, allerdings sieht das im Moment eher so aus:

teststring = "a"
nach der Umwandlung testchar = [C@1878144
beim nächsten mal wieder mit a, testchar war dann aber [C@2f0df1

Hatte mir den Tipp, Strings in Asciicode auf diese Weise umzuwandeln ergoogelt, aber es scheint ja nicht zu funktionieren sondern es ergibt zufällige Werte.

Weiß jemand woran das liegt, und wie ich das beheben/sonst Strings in Asciicode wandeln kann??

PS: Das Format von "testchar" müsste danach eben so sein, dass es nur aus den Ascii-Code-Zahlen besteht, damit ich diese dann in eine int weiterkonvertieren kann...

  1. Hi,

    char[] testchar = teststring.toCharArray();
    System.out.println("Test=" + testchar);

    Das gibt nicht den Inhalt des Arrays aus, sondern eine Kombination aus Typbezeichner [C - [ für Array, C für Char und der Referenz.
    Würdest Du aber auf die einzelnen Elemente des Arrays zugreifen, hättest Du auch einzelne Zeichen ...

    nach der Umwandlung testchar = [C@1878144
    beim nächsten mal wieder mit a, testchar war dann aber [C@2f0df1

    Die Referenz ändert sich natürlich.

    Hatte mir den Tipp, Strings in Asciicode auf diese Weise umzuwandeln ergoogelt

    Das klappt schon allein deshalb nicht, da die Zeichen eines Strings in Java keine ASCII-Zeichen sind, sondern Unicode-Zeichen.

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
  2. Hallo,

    char[] testchar = teststring.toCharArray();
    System.out.println("Test=" + testchar);

    Du mußt auf die einzelnen Array-Element zugreifen, und nicht auf
    das ganze Array.

    Also z.B.

    char[] testchar = "MeinTestString".toCharArray();
      System.out.println("Test=" + testchar[0] + testchar[1]);

    Das würde jetzt allerdings diese Ausgabe ergeben:

    Test=Me

    Willst du den Unicode als Zahl haben, mußt du die Chars noch nach
    int wandeln:

    char[] testchar = "MeinTestString".toCharArray();
      System.out.println("Test=" + (int)testchar[0] + (int)testchar[1]);

    Wie MudGuard schon sagte, verwendet Java Unicode. Ascii-Code kannst
    du damit also nicht kriegen. Die ersten 256 Zeichen von Unicode sind
    jedoch identisch mit den 256 Zeichen von ISO-8859-1. Die ersten 128
    Zeichen von ISO-8859-1 sind wiederum identisch mit US-Ascii. (Ascii
    hat ja eigentlich nur 7 bit, also 128 Zeichen, wie du vielleicht weißt.)

    Gruß
    Slyh