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 ..但它打印了一些其他的字符..
答案 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 ,所以使用扫描程序,
希望这有帮助!