如何将十进制转换为ASCII字符

时间:2013-08-26 00:35:37

标签: java

我试图编写一个函数,将字符串中的最后两个Hex转换为ASCII字符。像“ab3A”应该打印“ab:”

这是我写的代码,它将最后两个转换为十进制,但无法将该十进制转换为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;


}

2 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分: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;

我很抱歉我的英语不太好。这是我处理这个问题的方法。串strI = Integer.toString(hex);

这句话是错误的。它使十六进制为字符串。例如,如果hex = 97,StrI =“97”而不是“a”