Чтение одного char в Java

Как можно ввести char в Java с клавиатуры?

Ответ 1

Вы можете сканировать всю строку:

Scanner s = new Scanner(System.in);
String str = s.nextLine();

Или вы можете прочитать один char, если вы знаете, с какой кодировкой вы имеете дело:

char c = (char) System.in.read();

Ответ 2

Вы можете использовать Scanner так:

Scanner s= new Scanner(System.in);
char x = s.next().charAt(0);

Используя функцию charAt, вы можете получить значение первого char без использования внешнего каста.

Ответ 3

Для этого вы можете использовать Scanner. Неясно, каковы ваши точные требования, но вот пример, который должен быть иллюстративным:

    Scanner sc = new Scanner(System.in).useDelimiter("\\s*");
    while (!sc.hasNext("z")) {
        char ch = sc.next().charAt(0);
        System.out.print("[" + ch + "] ");
    }

Если вы укажете этот ввод:

123 a b c x   y   z

Вывод:

[1] [2] [3] [a] [b] [c] [x] [y] 

Итак, что здесь происходит, так это то, что Scanner использует \s* как разделитель, который является регулярным выражением для "нулевых или более пробельных символов". Это пропускает пробелы и т.д. На входе, поэтому вы получаете только символы без пробелов, по одному за раз.

Ответ 4

Я нашел, что этот способ работал хорошо:

    {
    char [] a;
    String temp;
    Scanner keyboard = new Scanner(System.in);
    System.out.println("please give the first integer :");
    temp=keyboard.next();
    a=temp.toCharArray();
    }

вы также можете получить индивидуальный с помощью String.charAt()

Ответ 5

.... char ch; ... ч = scan.next() Шар (0). , , Это простой способ получить характер.

Ответ 6

Возможно, вы можете попробовать этот код:

import java.io.*;
public class Test
{
public static void main(String[] args)
{
try
  {
  BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
  String userInput = in.readLine();
  System.out.println("\n\nUser entered -> " + userInput);
  }
  catch(IOException e)
  {
  System.out.println("IOException has been caught");
  }
 }
}