【问题标题】:How to take character input in java如何在java中进行字符输入
【发布时间】:2014-05-15 06:27:45
【问题描述】:

在 C 语言中,我们可以使用键盘上的关键字 char 将输入作为字符

scanf("%c", &ch);

但是在 Java 中如何做到这一点?

我试过这个:

import java.util.Scanner;

public class Main {
  public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    System.out.println("Enter a character: ");
    char c = scanner.next().charAt(0);
    System.out.println("You have entered: "+c);
  }
}

【问题讨论】:

  • 你有没有尝试过?有用吗?
  • 嗯,我试过了。这是示例之一: import java.util.Scanner;公共类 Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入一个字符:"); char c =scanner.next().charAt(0); System.out.println("你已经输入:"+c); } }

标签: java input char


【解决方案1】:

您可以使用扫描仪从输入中读取:

Scanner scanner = new Scanner(System.in); 
char c = scanner.next().charAt(0); //charAt() method returns the character at the specified index in a string. The index of the first character is 0, the second character is 1, and so on.

【讨论】:

    【解决方案2】:

    您可以简单地使用(char) System.in.read(); 转换为char 来将int 转换为char

    【讨论】:

    • 这仅适用于可以由小于 256 的 int 值表示的字符。尝试使用字符“”,看看会发生什么。使用此方法无法正确读取任何需要超过一个字节来表示的字符。
    【解决方案3】:
    import java.util.Scanner;
    
    class SwiCas {
    
        public static void main(String as[]) {   
            Scanner s= new Scanner(System.in);
    
            char a=s.next().charAt(0);//this line shows how to take character input in java
    
            switch(a) {    
                case 'a':
                    System.out.println("Vowel....");   
                    break;    
                case 'e':
                    System.out.println("Vowel....");   
                    break;   
                case 'i':
                    System.out.println("Vowel....");   
                    break;
                case 'o':
                    System.out.println("Vowel....");    
                    break;    
                case 'u':
                    System.out.println("Vowel....");   
                    break;    
                case 'A':
                    System.out.println("Vowel....");    
                    break;    
                case 'E':
                    System.out.println("Vowel....");  
                    break;    
                case 'I':
                    System.out.println("Vowel....");    
                    break;    
                case 'O':
                    System.out.println("Vowel....");    
                    break;   
                case 'U':
                    System.out.println("Vowel....");    
                    break;    
                default:    
                    System.out.println("Consonants....");
            }
        }
    }
    

    【讨论】:

    • 虽然此代码可以回答问题,但提供有关其解决问题的方式和原因的信息可提高其长期价值
    【解决方案4】:

    使用系统类

    char yourChar = System.in.read()
    

    【讨论】:

    • 不要忘记转换结果。此外,最好检查 -1(流结束)。
    • 同样,这仅适用于可以由单个字节表示的字符。在它上面夹一个多字节字符,例如“”,这不再给出正确的输出。
    【解决方案5】:

    这里是示例程序。

    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    
    public class ReadFromConsole {
    
      public static void main(String[] args) {
    
        System.out.println("Enter here : ");
    
        try{
            BufferedReader bufferRead = new BufferedReader(new InputStreamReader(System.in));
    
            String value = bufferRead.readLine();
    
            System.out.println(value);
        }
        catch(IOException e)
        {
            e.printStackTrace();
        }
      }
    }
    

    您在互联网上搜索即可轻松获取。 StackExchange 建议您先进行一些研究并付出一些努力。

    【讨论】:

    • 起初我搜索过但没有得到确切的答案。这就是我问这个问题的原因。感谢大家的精彩重播。
    • 好。如果您发现任何对您最有帮助的答案,您可以选择它作为最佳答案并为您最喜欢的答案投票。
    • 我已经使用这个网站很久了,但是昨天在这个网站上注册了。这就是为什么我现在无权投票赞成任何答案。在单击按钮进行投票“投票需要 15 名声望”时,会显示此消息。我可以做些什么来提高我在这个网站上的声誉?
    • 您目前可能无法投票,但可以通过单击答案旁边的勾号来选择正确的答案。为了提高声誉,此链接将帮助您了解。 stackoverflow.com/help/whats-reputation
    【解决方案6】:

    使用 java 你可以做到这一点:

    使用扫描仪:

    Scanner reader = new Scanner(System.in);
    String line = reader.nextLine();
    // now you can use some converter to change the String value to the value you need.
    // for example Long.parseLong(line) or Integer.parseInt(line) or other type cast
    

    使用 BufferedReader:

    BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
    String line = reader.readLine();
    // now you can use some converter to change the String value to the value you need.
    // for example Long.parseLong(line) or Integer.parseInt(line) or other type cast
    

    在这两种情况下,您需要将默认输入传递给您,在我的情况下为 System.in

    【讨论】:

    • 我知道这个系统将字符串作为输入。在我看来,输入一个字符和一个字符串是不同的东西。顺便感谢您的重播。
    【解决方案7】:

    使用:

    char ch=**scanner.nextChar**()
    

    【讨论】:

      【解决方案8】:

      我也有同样的挣扎,我就是这样用的:

      } public static void main(String[] args) {
      
      Scanner scan = new Scanner(System.in);
      System.out.print("Please enter the string: ");
      String input = scan.next();
      System.out.print("Please enter the required symbol: ");
      String symbol = scan.next();        
      char symbolChar = symbol.charAt(0);
      

      这很好用。 这个想法是从字符串中获取唯一的字符。

      【讨论】:

        【解决方案9】:
        import java.util.Scanner;
        
        class CheckVowel {
        
            public static void main(String args[]) {   
                Scanner obj= new Scanner(System.in);
        
                char a=obj.next().charAt(0);
        
                switch(a) {    
                    case 'a':  //cases can be used together for the same statement
                    case 'e':
                    case 'i':
                    case 'o':
                    case 'u':
                    case 'A':
                    case 'E':
                    case 'I':     
                    case 'O':
                    case 'U':
                             {
                        System.out.println("Vowel....");   
                        break;
                       }    
                    default:    
                        System.out.println("Consonants....");
                }
            }
        }
        

        【讨论】:

          【解决方案10】:
          import java.util.Scanner;
          public class Main{
          public static void main(String args[]){
             Scanner sc = new Scanner(System.in);
             System.out.println("Enter a character:");
          String str = next();
          char c = str.charAt(0);
          System.out.println(c);
          sc.close();
          }
          [Output of this program.][1]}
          

          【讨论】:

          • 考虑添加一些 cmets 和解释以及解决方案代码。
          猜你喜欢
          • 1970-01-01
          • 2021-07-20
          • 1970-01-01
          • 1970-01-01
          • 2021-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-10-03
          • 2011-04-03
          相关资源
          最近更新 更多