2

文字列の最後の 2 つの Hex を ASCII 文字に変換する関数を作成しようとしています。「ab3A」のように「ab:」と出力する必要があります。

これは私が書いたコードです。最後の 2 つを 10 進数に変換しますが、その 10 進数を ASCII 文字に変換することはできません。私はそれを達成するために .toString() を使用しようとしましたが、成功しませんでした。

 private static String unmangle(String word)
 {      
    String newTemp = word.substring(word.indexOf('%')+1);
    int hex = hexToInt(newTemp);
    String strI = Integer.toString(hex);

    System.out.println(strI);

    word=word.replace("%", "");
    word=word.replace("+", " ");
    return word = word.replace(newTemp, "")+ strI;


}
4

2 に答える 2

3

あなたは非常に近いです: 必要なのはInteger.toString-の呼び出しではなくキャストだけです

private static String unmangle(String word)
{      
    String newTemp = word.substring(word.indexOf('%')+1);
    char hex = (char)hexToInt(newTemp);

    word=word.replace("%", "");
    word=word.replace("+", " ");
    return word = word.replace(newTemp, "")+ hex;
}
于 2013-08-26T00:39:10.513 に答える
0

まず、Hex を ASCII にする方法を知っておく必要があります。

String newTemp=word.substring(word.length-1,word.length);
char a=newTemp.substring(0,0);
char b=newTemp.substring(1,1);
int c=0,d=0;
//And you should convert to int.
if(a='A'|'a')
c=10;//the same to d.
//and 
c=c*16+d;
String strI = Integer.toString(c);
return word.substring(0,word.length-2)+strI;

私の英語が下手で申し訳ありません。そして、これがこの質問に対処する私の方法です.StringstrI = Integer.toString(hex);

この文は間違っています。16 進数を文字列にします。たとえば、hex=97 の場合、StrI="97" ではなく "a"

于 2013-08-26T01:03:57.730 に答える