打印其他一些字符

时间:2013-10-05 16:54:01

标签: java

import java.io.*;
class Test{
    public static void main(String args[])throws IOException{
        char a[]=new char[4];       
        DataInputStream in=new DataInputStream(System.in);
        for(int i=0;i<4;i++)
            a[i]=in.readChar();
        System.out.println("Characters are : ");
        for(int i=0;i<4;i++)
            System.out.println(a[i]);
    }   
}

输出:

java Test
a
s
d
f
Characters are : 
愊
猊
搊
昊

在这里我读了字符a,s,d和f ..但它打印了一些其他的字符..

3 个答案:

答案 0 :(得分:0)

如果您只想读取字符,则可以选择使用BufferedReader

您可以使用public static BufferedReader newBufferedReader(Path path, Charset cs)类的Files来获取BufferedReader。除了支持字符集之外,它还可以高效缓存数据:)

答案 1 :(得分:0)

使用以下逻辑操作输入字符:

(char)((a << 8) | (b & 0xff))

请参阅readChar文档:

  

public char readChar()抛出IOException

     

读取输入char并返回char值。 Unicode字符由两个字节组成。让我们成为第一个   字节读取,b是第二个字节。返回的值是:(char)((a   &LT;&LT; 8)| (b&amp; 0xff))

     

此方法适用于读取字节   由接口DataOutput的writeChar方法编写。

答案 2 :(得分:0)

检查一下,这将有效,

        char a[]=new char[4];      
        Scanner in =new Scanner(System.in);
        for(int i=0;i<4;i++) {
            a[i]=(char) in.next().charAt(0);
        }
        System.out.println("Characters are : ");
        for(int i=0;i<4;i++) {
            System.out.println(a[i]);
        }

您的代码存在问题:

在给出输入的同时,考虑输入的字节格式,然后将字节的Unicode值存储到a中,这样就可以获得特殊字符。

不知道如何处理 DataInputStream ,所以使用扫描程序

希望这有帮助!