java中怎么把ASCII码转成字符串格式?

import java.util.*;
import java.text.*;
class tThread extends Thread{

String character;
int delay;

tThread(String character, int delay){
this.character = character;
this.delay = delay;
}

public void run(){
try{

for(int i = 0 ; i < 25 ; i++){
String str = Thread.currentThread().getName();

if(str.equals("ds1")){
int a = 97 + i;
character = (char)a;
System.out.print("字母:"+character+" ");
Thread.sleep(delay);
}
else{
int a = i + 1;
character = (char)a;
System.out.print("数字:"+character+" ");
Thread.sleep(delay);
}
}
}
catch(InterruptedException e){}
}
}
public class Exercise6_1{

public static void main(String[] args){
String str1 = " ",str2 = " ";
tThread ds1 = new tThread(str1,1000);
tThread ds2 = new tThread(str2,1000);
ds1.start();
ds2.start();
}
}

运行的话会在character = (char)a; 这里出现imcompatible types的问题。求高手求大侠求各种帮助,谢谢啦~

第1个回答  2010-11-15
哈哈,你的character定义为String类型。
可是看你写的这行character = (char)a;
你把一个char类型转换为String类型,当然不可以了。

下面的代码是转ascii的例子你可以参考下。
import java.io.UnsupportedEncodingException;
public class T {
public static void main(String[] args) throws UnsupportedEncodingException {
t1();//ASCII转换为字符串

t2();//字符串转换为ASCII码

}
public static void t1(){//ASCII转换为字符串

String s="22307 35806 24555 20048";//ASCII码

String[]chars=s.split(" ");
System.out.println("ASCII 汉字 \n----------------------");
for(int i=0;i<chars.length;i++){
System.out.println(chars[i]+" "+(char)Integer.parseInt(chars[i]));
}
}
public static void t2(){//字符串转换为ASCII码

String s="新年快乐!";//字符串

char[]chars=s.toCharArray(); //把字符中转换为字符数组

System.out.println("\n\n汉字 ASCII\n----------------------");
for(int i=0;i<chars.length;i++){//输出结果

System.out.println(" "+chars[i]+" "+(int)chars[i]);
}
}
}本回答被提问者采纳
第2个回答  2010-11-16
character = Character.toString((char)a);
或者:
character = new Character((char)a).toString();
第3个回答  2010-11-15
你用String去引用一个char,问题出在这里啦