无法输入2个字符类型的变量java

时间:2015-04-08 12:16:01

标签: java character

import java.io.*;

public class character 
{
    public static void main(String args[])throws IOException
    {
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
        System.out.println("enter two characters");
        char a=(char)br.read();
        char b=(char)br.read();
        System.out.println("1."+a);
        System.out.println("2."+b);
    }
}

这是我的代码,由于某种原因,它拒绝输入第二个字符并直接跳转到输出。有人可以帮忙吗?

5 个答案:

答案 0 :(得分:2)

这是因为br.read()被使用了两次。 您基本上是从控制台读取两个字符。

因此,当您输入第一个字符后输入(which terminates read())时,请说出a,您将获得以下输出:

a='a';
b=ENTER KEY

如果输入除输入以外的任何内容,则会在b中输入该字符。

答案 1 :(得分:1)

我认为可能是在第二个字母中读取回车键,但不要引用我的话。你可以尝试:

char a=(char)br.readLine().charAt(0);
char b=(char)br.readLine().charAt(0);

是..它将输入键的值(13)分配给char b:

如果你这样做,你会看到它:

BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
System.out.println("enter two characters");
char a=(char)br.read();
char b=(char)br.read();
int c = (int)b;
System.out.println("1."+a);
System.out.println("2."+c);

<强>输出:

输入两个字符

1.A

2.13

http://www.theasciicode.com.ar/ascii-control-characters/carriage-return-ascii-code-13.html

答案 2 :(得分:1)

您编写的代码将从控制台获取前两个字符。这包括空格或换行符。这意味着如果您输入a b,则第一个字符将为a,第二个字符将为空格。

答案 3 :(得分:1)

public class character {
public static void main(String args[]) throws IOException {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    System.out.println("enter two characters");
    char a = (char) br.read();
    char b = (char) br.read();
    int c=(int)b;
    System.out.println("1." + a);
    System.out.println("2." + c);
}

输入

  

输入两个字符   1

因此,当您按Enter键终止read()时,您将获得以下输出:

  

1.1   2.10

这里10来自换行的ASCII值

答案 4 :(得分:0)

你应该试试这个:

    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    System.out.println("enter two characters");
    int count = 0;
    char[] characters = new char[2];
    while (count < 2) {
        String line = br.readLine();
        characters[count] = line.charAt(0);
        count ++;
    }
    System.out.println(characters[0]);
    System.out.println(characters[1]);

此代码将读取ENTER键并跳至下一行。这样您就可以输入两个用ENTER键分隔的字符。