日期:2014-05-20  浏览次数:20652 次

java如何用DataInputStream类从控制台读取一个char类型
我想在控制台输入一个汉字 然后通过DataInputStream类读取获得char类型,然后输出char类型对应的unicode类型并转换为十六进制,请高手们提点,谢谢
比如我在控制台输入一个汉字:中,可以得到他的char类型 并转换为unicode为:20013

------解决方案--------------------
你上面的例子中的确“中”,转换为unicode为:20013是十进制转换,而不是十六进制,十六进制值为4e2d
Java code

package cn.com;
import java.io.DataInputStream;
import java.io.IOException;

public class DataInputStreamTest {
    public static void main(String[] args) throws IOException {
        DataInputStream in = new DataInputStream(System.in);
        byte[] buf = new byte[1024]; 
        int len = -1;
        String str ="";
        while((len = in.read(buf))!=-1){
            str =new String(buf,0,len);  
                for(int i=0;i<str.length()-2;i++){
                    System.out.println((int)str.charAt(i));
                    System.out.println(Integer.toHexString((int)str.charAt(i)));   
            }
        }
        in.close();
    }
}