Announcement

Collapse
No announcement yet.

String zerlegen?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • String zerlegen?

    Hallo,

    ich bekomme ueber die serielle Schnittstelle einen 13Byte langen String.
    Dieser liegt in einem StringBuffer und besteht aus 2x 4Byte(long) Zaehlerstaende und 5x 1Byte Status usw.
    Wie komme ich an den int Wert der Byte 9,10 und 11?

    Vielen Dank im voraus.

    Gruß Michael

  • #2
    Zählst Du die Bytes ab 0 und brauchst den int Wert der Bytes<br>
    9 BIS 11 (also 3 Bytes) oder den int Wert jedes EINZELNEN Byte 9,10,11?
    <p>
    Klau

    Comment


    • #3
      Ich brauche den int Wert der einzelnen Byte.
      Also int Byte[9], int Byte[10] und int Byte[11]

      Comment


      • #4
        int intValue = (int)string.charAt(j); mit j=9|10|11 könnte es sein.
        <p>
        Klau

        Comment


        • #5
          Das hat leider nicht funktioniert.
          Ich bekomme eine int Zeichenkette die als Beispiel so aussieht:

          255128002551280011011602200 (255:128:0:0:255:128:0:0:110:116:0:220:0)

          bei (int)string.charAt(9) bekomme ich nun z.B. eine 55 zurück.
          ---------------------------------------------------------------
          Ich könnte auch beim Dateneinlesen ein Space anhängen um dann vieleicht mit StringTokenizer die Teile zu trennen.
          Da weiss ich aber noch nicht wie.

          Michae

          Comment


          • #6
            Ich wusste nicht, dass Dein String schon die String-Repräsentation <br>
            von Integer-Werten enthält. Wenn dem so ist, musst Du die einzelnen<br>
            Bestandteile mit substring oder StringTokenizer "rausschneiden"<br>
            und kannst dann auf den Substring (oder das Token) anwenden:<br>
            int intValue = Integer.parseInt(substring);
            <p>
            Klau

            Comment


            • #7
              Hallo Klaus,

              ich habe jetzt gesehen wie das Programm mit C++ aussieht.
              Da wurde ein Array erzeugt:

              struct StatusBufferStructure
              {
              long Data1;
              long Data2;
              BYTE Temp;
              BYTE Volt;
              BYTE Status;
              BYTE Flags;
              BYTE ChkSum;
              };

              StatusBufferStructure m_StatusBuffer;

              Wie bekomme ich das mit Java hin?

              Gruß Michae

              Comment


              • #8
                Hallo Michael,<br>
                für die BYTES sollte es so gehen:<br>
                byte b = Byte.parseByte(str.substring(8,9);<br>
                oder<br>
                char c = str.charAt(8);<br>
                char[] cbuf = new char[1];<br>
                cbuf[0] = c;<br>
                byte b = Array.getByte(cbuf, 0);<br>
                Für die int (4 Byte, entspricht long Data1) schaut es schlecht aus:<br>
                Man kann zwar leicht einen Substring bauen:<br>
                String data1Str = str.substring(0,4);<br>
                aber wie man diesen Substring dann nach int konvertiert, weiss ich<br>
                leider auch nicht.<br>
                Integer.parseInt("1234") liefert z.B. den int Wert 1234, aber NICHT<br>
                die interne int Represenation von "1234" wenn man das als 4-Byte-Array auffasst.
                <p>
                Klau

                Comment


                • #9
                  Hallo !

                  für die Umwandlung eines Strings in einen int-Wert verwende folgendes :

                  int intValue = new Integer("1234").intValue();

                  Andrea

                  Comment

                  Working...
                  X