2017-02-17 5 views
-1

2つの16進文字列を1つにマージする必要があります。私はreaceaveストリーム内2つの16進文字列をJavaの読み込み可能なデータに結合する

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

シリアルポートから文字ST = 0 このような第1:私は、文字列を構成する必要が

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

は、最初のものは、このように構成されていますどちらの文字列でも私には「ST = 1; sp = 16;」と表示されますヘキサで。そうするために、私はこれをしなかった:

String mensagem ="" 
mensagem = hexch + sqhex; 

事は結果の16進数文字列は、

53543d31d3b73703d31363b 

は私が必要なものを表していないということです。 「ST = 1; sp = 16;」の代わりに私は "ST =1Ó・7ÓC"

私は必要なものを構築するために16進数文字列をマージするとにかくありますか?

おかげ

+1

あなたが何を求めているかわかりません。 **実際の** [mcve]を思いついてみてください。それを超えて:16進文字列に「参加する」という意味を定義してください。あなたは "数値加算"を意味しますか?または単に "a" + "b" = "ab"連結?それ以外にも、提出する前にあなたの意見を何度もお読みください。このものはちょうど**混乱**です。 – GhostCat

+0

16進数列を連結すると、どのようにして 'ST = 1・7Óc'となるのですか?どのようなコードを私たちに提示していませんか? – VGR

+0

@GhostCat連結を行うことを意味します。検証可能な例はアップロードできません。なぜなら、コード全体が上で説明した他の矛盾を持っているからです。 – kohhworlwide

答えて

0

Integer.toHexString(CH)が変化する長さを有しているためです。したがって、エンコード処理の結果はデコードできません。

関連する問題