Java中如何输入一个字符

Java中如何输入一个字符在一次编写代码时需要让程序接收一个字符,当我写出scanner.next时,我惊奇的发现,Scanner类中没有定义读取char的方法!!!Java中的扫描器类支持nextInt(),nextLong(),nextDouble()等。但是没有nextChar()。要读取char,我们使用next().charAt(0)。next()函数返回输入中的下一个标记/字符作为字符串,并且charAt(0)函数返回该字符串中的第一个字符。所以,我们有了思路:先创建一个Scanner对象,调用Scanner对象

大家好,又见面了,我是你们的朋友全栈君。

在一次编写代码时需要让程序接收一个字符,当我写出scanner.next时,我惊奇的发现,Scanner类中没有定义读取char的方法!!!

Java中的扫描器类支持nextInt(),nextLong(),nextDouble()等。
但是没有nextChar()。要读取char,我们使用next().charAt(0)。next()函数返回输入中的下一个标记/字符作为字符串,并且charAt(0)函数返回该字符串中的第一个字符。

所以,我们有了思路:
创建一个Scanner对象调用Scanner对象的next()方法获取控制台输入的字符串,返回的是一个String类型,因为没有nextChar()方法,所以调用String的charAt(0)方法获取第一个字符,这样一来,我们就输入了一个字符串

根据查找的资料以及知识储备,我总结了三条可以输入一个字符的方法:

import java.util.Scanner;
Scanner scanner = new Scanner(System.in);
char c = scanner.next().charAt(0);	

这是目前为止最常用的方法,就是上面的黑字原理

import java.util.Scanner;
Scanner scanner = new Scanner(System.in);
char c = scanner.next().toCharArray()[0];

这个用起来一般般,没有第一种好用,有些浪费资源,没有第一种简单

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
char c = (char)new BufferedReader(new InputStreamReader(System.in)).read();

这样也可以输入,但是!这情况用于没有scanner包时使用,很麻烦,需要导入很多东西,不建议使用,了解一下即可

综上所述,记住第一种方法,即可,我们来回顾一下第一种

import java.util.Scanner;
Scanner scanner = new Scanner(System.in);
char c = scanner.next().charAt(0);	

问题得以解决!!!为自己鼓掌

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/157130.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • vscode设置快捷键删除行

    vscode设置快捷键删除行开发中习惯的快捷键删除:ctrl+Dvscode的删除快捷键:ctrl+shift+K修改方式:默认ctrl+D被addselectiontonextfindmatch使用, 先修改调它的快捷键,如图改为ctrl+shift+alt+D,按回车键保存 在修改DeleteLine的快捷键为ctrl+D,按回车键保存 完成…

    2022年6月26日
    121
  • Java基础篇:封装、继承、多态三大特性

    Java基础篇:封装、继承、多态三大特性

    2021年10月4日
    60
  • Ubuntu安装Redis_docker搭建redis集群

    Ubuntu安装Redis_docker搭建redis集群NoSQL简介NoSQL,全名为NotOnlySQL,指的是非关系型的数据库随着访问量的上升,网站的数据库性能出现了问题,于是nosql被设计出来优点/缺点优点:高可扩展性分布式计算低成本架构的灵活性,半结构化数据没有复杂的关系缺点:没有标准化有限的查询功能(到目前为止)最终一致是不直观的程序分类类型部分代表特点列存储H…

    2022年8月31日
    4
  • 香农编码的matlab仿真实现实验报告_香农编码例题

    香农编码的matlab仿真实现实验报告_香农编码例题实验目的:通过该实验,掌握通过计算机实验可变长信源编码方法,进一步熟悉香农编码,费诺编码以及霍夫曼编码方法。实验环境:Matlab7.1实验内容及过程:1.对于给定的信源的概率分布,用MATLAB语言实现香农编码。2.对于给定的信源的概率分布,用MATLAB语言实现霍夫曼编码。3.对于给定的信源的概率分布,用MATLAB语言实现游程编码。以下为M文件:1.funct…

    2025年9月8日
    7
  • struts定时任务实现(quartz任务调度)

    最近有需求要写一个定时任务目的是更新一些员工/人员与部门之间的关系项目用的是struts2当我加了spring的jar包之后写了一个定时任务项目经理不让用spring就修改一下这次贴个全的下面是任务类packagecom.timetask.action;importjava.io.BufferedWriter;importjava.io.File;importjava….

    2022年4月15日
    45
  • nvicat激活码-激活码分享

    (nvicat激活码)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月25日
    87

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号