所以我试图实现一个非常简单的程序。
我想将bobi设置为变量但不使用字符串。我想我只能用char来做。
这是我到目前为止所拥有的
System.out.println("Please Enter a four letter name");
char n =
char a =
char m =
char e =
System.out.print("His name is ");
System.out.print(n);
System.out.print(a);
System.out.print(m);
System.out.print(e);
我所拥有的程序是
your program: Enter four letter name:
user: b
user: o
user: b
user: i
我希望能够输入一个输入 所以就像这样
program: Enter four letter name:
user: bobi
还是有更好的方法来解决
答案 0 :(得分:3)
System.in
流是此处的关键。您需要阅读每个byte
,然后通过explicit cast
到char
进行操作。
char n = (char)System.in.read();
char a = (char)System.in.read();
// And so on.
阅读材料,以便您理解
答案 1 :(得分:1)
当然可以从System.in
读取原始数据:
char[] name = new char[4];
try {
char c;
int i = 0;
while((c = (char)System.in.read()) != '\n') {
if(i < name.length)
name[i++] = c;
}
} catch(IOException ioe) {}
有几个笔记:
System.in
以新行字符(来自用户按'enter')终止,与其他流为null或-1终止的流不同。System.in
应与UTF-8兼容。它可能与系统属性file.encoding
相同。我找不到这样说的官方消息来源,但无论如何你只能将它转换为char。 This question似乎也暗示兼容性也会成为其他读者的问题。请注意,这可能并不简单。与使用Scanner
比较:
String line = new Scanner(System.in).nextLine();
if(line.length() > 4)
line = line.substring(0, 4);
对于这两种情况,除非用户输入后输入,否则无法控制用户输入的内容。你要求一个4个字符的名字,但他们可以输入“乔布朗”,他们可以不输入任何内容。