2017-02-17 2 views
-1

Ich muss zwei Hex Strings zu einem zusammenführen. Die erste ist wie folgt zusammengesetzt:Verbinden von zwei Hex Strings in lesbare Daten in Java

while(i=0;i<10;i++){ 
    int ch = inStream.read(); 
      String hexch=""; 
      if (ch >= 0) { 
      hexch += Integer.toHexString(ch); 
      } 

im Strom I von einer seriellen Schnittstelle reaceave die Zeichen ST = 0 Das zweite so:

  String one = ";sp=16;" 
      String sqhex=""; 
      byte[] data = one.getBytes(); 
       int j; 
       for (j=0;j<data.length;j++) 
       { 
        sqhex+=Integer.toHexString(data[j]); 
       } 

Ich muss einen String komponieren Mit beiden Strings bekomme ich das: "ST = 1; sp = 16;" in HEX. Um dies zu tun, ich habe dies:

String mensagem ="" 
mensagem = hexch + sqhex; 

Die Sache ist, dass der resultierende Hex-String,

53543d31d3b73703d31363b 

nicht vertreten, was ich brauche. Anstelle von "ST = 1; sp = 16;" Ich bekomme "ST = 1Ó · 7Óc"

Gibt es sowieso die Hex-Strings zusammenführen, um zu bauen, was ich brauche? Diese

Dank

+1

Keine Ahnung, was Sie fragen. Versuchen Sie sich ein ** echtes ** [mcve] zu überlegen; aber darüber hinaus: Bitte definieren Sie, was Sie meinen, indem Sie Hex-Strings "verbinden". Meinst du "numerische Addition"; oder nur "a" + "b" = "ab" Verkettung ?! Außerdem: Bitte lesen Sie Ihre Eingabe mehrmals vor dem Einreichen; dieses Zeug ist nur ein ** Chaos **. – GhostCat

+0

Wie führt die Verkettung einer Folge von Hexadezimalziffern zu "ST = 1Ó · 7Óc"? Welchen Code zeigst du uns nicht? – VGR

+0

@GhostCat Ich meine eine Verkettung. Ich kann kein überprüfbares Beispiel hochladen, da der gesamte Code andere Abhängigkeiten hat, die ich oben erläutert habe. – kohhworlwide

Antwort

0

ist, weil Integer.toHexString (ch) eine variierende Länge haben. Das Ergebnis Ihres Kodierungsprozesses ist also nicht decodierbar.

Verwandte Themen