java中如何输入char类型

引言

在Java中,输入 char 类型的数据有多种方法,包括从控制台输入、从文件读取、从网络接收等。本文将详细介绍几种常见的 char 类型输入方式,涵盖控制台输入、文件读取和网络接收等场景。

1. 从控制台输入 char 类型数据

1.1 使用 Scanner 类

Scanner 类是 Java 标准库中提供的一个方便的类,用于从标准输入流(通常是键盘输入)读取数据。

import java.util.Scanner;

public class CharInputFromConsole {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入一个字符: ");
        char ch = scanner.next().charAt(0);
        System.out.println("你输入的字符是: " + ch);
        scanner.close();
    }
}
1.2 使用 BufferedReader 类

BufferedReader 类结合 InputStreamReader 可以更高效地读取字符输入。

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class CharInputFromConsole2 {
    public static void main(String[] args) {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        System.out.print("请输入一个字符: ");
        try {
            char ch = (char) reader.read();
            System.out.println("你输入的字符是: " + ch);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

2. 从文件读取 char 类型数据

2.1 使用 FileReader 类

FileReader 类可以直接读取文件中的字符数据。

import java.io.FileReader;
import java.io.IOException;

public class CharInputFromFile {
    public static void main(String[] args) {
        try (FileReader reader = new FileReader("input.txt")) {
            int ch;
            while ((ch = reader.read()) != -1) {
                System.out.println((char) ch);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
2.2 使用 BufferedReader 类

BufferedReader 类结合 FileReader 可以更高效地读取文件中的字符数据。

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class CharInputFromFile2 {
    public static void main(String[] args) {
        try (BufferedReader reader = new BufferedReader(new FileReader("input.txt"))) {
            int ch;
            while ((ch = reader.read()) != -1) {
                System.out.println((char) ch);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

3. 从网络接收 char 类型数据

3.1 服务器端代码

服务器端可以从客户端接收字符数据。

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;

public class CharInputFromNetworkServer {
    public static void main(String[] args) {
        try (ServerSocket serverSocket = new ServerSocket(12345)) {
            System.out.println("服务器启动,等待客户端连接...");
            Socket socket = serverSocket.accept();
            System.out.println("客户端已连接");

            try (BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()))) {
                int ch;
                while ((ch = reader.read()) != -1) {
                    System.out.println((char) ch);
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
3.2 客户端代码

客户端可以向服务器发送字符数据。

import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;

public class CharInputFromNetworkClient {
    public static void main(String[] args) {
        try (Socket socket = new Socket("localhost", 12345)) {
            try (PrintWriter writer = new PrintWriter(new OutputStreamWriter(socket.getOutputStream()), true)) {
                writer.print('A');
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

4. 从字符串中提取 char 类型数据

4.1 使用 charAt 方法

可以从字符串中提取指定位置的字符。

public class CharInputFromString {
    public static void main(String[] args) {
        String str = "Hello, World!";
        char ch = str.charAt(0); // 获取第一个字符
        System.out.println("第一个字符是: " + ch);
    }
}

5. 从字符数组中提取 char 类型数据

5.1 使用索引访问

可以直接通过索引访问字符数组中的字符。

public class CharInputFromArray {
    public static void main(String[] args) {
        char[] chars = {'H', 'e', 'l', 'l', 'o'};
        char ch = chars[0]; // 获取第一个字符
        System.out.println("第一个字符是: " + ch);
    }
}

总结

以上是几种常见的 char 类型输入方式,包括从控制台输入、从文件读取、从网络接收、从字符串中提取和从字符数组中提取。这些方法可以帮助开发者在不同的场景下灵活地处理 char 类型的数据。希望本文能为你的 Java 开发之旅提供实用的参考。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/910183.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Node.js——fs模块-路径补充说明

1、相对路径: ./座右铭.txt 当前目录下的座右铭.txt座右铭.txt 等效于上面的写法../座右铭.txt 当前目录的上一级目录中的座右铭.txt 2、绝对路径 D:/Program File Windows系统下的绝对路径/usr/bin Linux系统…

征程 6E DISPLAY 功能介绍

1.功能概述 本文实现单路、多路 MIPI CSI TX 输出、IDU 回写、IDU oneshot 模式、绑定输出 VPS 数据等功能,此处主要介绍各 sample 的实现与使用方法。 2.软件架构说明 本文中绑定 VPS 输出功能基于 libvio API 实现,调用 libvio 提供的 API&#xff…

JS事件防抖函数封装通用代码片段

JavaScript 函数防抖是一种技术,用于解决在特定时间段内连续触发事件时产生的问题。当一个事件被触发时,通过设定一个特定的延迟时间,在这个延迟时间内如果事件再次触发,则重新计时。只有当事件没有在延迟时间内再次触发时&#x…

xshell连接不上linux的原因

1、首先我们确定好linux的配置,右键选择设置,将网络适配器设置成NAT模式 2、点击linux编辑,选择虚拟网络 打开以后选中自己要配置的服务 3、进入以后选中自己的服务,确保是NAT模式,然后配置好子网ip(尽量ip…

题目练习之二叉树那些事儿

♥♥♥~~~~~~欢迎光临知星小度博客空间~~~~~~♥♥♥ ♥♥♥零星地变得优秀~也能拼凑出星河~♥♥♥ ♥♥♥我们一起努力成为更好的自己~♥♥♥ ♥♥♥如果这一篇博客对你有帮助~别忘了点赞分享哦~♥♥♥ ♥♥♥如果有什么问题可以评论区留言或者私信我哦~♥♥♥ 知道了二叉树的结…

K8S篇(基本介绍)

目录 一、什么是Kubernetes? 二、Kubernetes管理员认证(CKA) 1. 简介 2. 考试难易程度 3. 考试时长 4. 多少分及格 5. 考试费用 三、Kubernetes整体架构 Master Nodes 四、Kubernetes架构及和核心组件 五、Kubernetes各个组件及功…

webrtc前端播放器完整案例

https://download.csdn.net/download/jinhuding/89961792

深圳新世联:氢能中的气体传感器应用

氢能作为一种替代能源,被认为是破解能源危机,构建清洁低碳、安全高效现代能源体系的新密码。氢能的开发与利用正在引发一场深刻的能源革命。在2024年《政府工作报告》中,“加快前沿新兴氢能产业发展”这一重要任务被明确提出。据预测&#xf…

电源完整性测试解决方案

电源完整性测试 RIGOL MSO5000电源完整性测试 引言 在过去数十年间,电子行业飞速发展,产品功能不断强大,特性日益丰富,为我们的生活带来了现代化的便利与享受。然而,随着越来越多的产品依赖微控制器来提供优异性能和…

高阶函数--python

高阶函数应当满足至少下面一个条件: 接受一个或多个函数参数 输出一个函数 下面用一个例子来理解高阶函数。 一、高阶函数 先看一个简单的函数 例一: 例二: 是高阶函数,因为满足条件,返回一个函数 并且有闭包&a…

Chrome与火狐哪个浏览器的隐私追踪功能更好

当今数字化时代,互联网用户越来越关注在线隐私保护。浏览器作为我们探索网络世界的重要工具,其隐私追踪功能的强弱直接影响到个人信息的安全。本文将对比Chrome和Firefox这两款流行的浏览器,在隐私追踪防护方面的表现,并探讨相关优…

详细分析WebStorageCache 基本知识

目录 1. 基本知识2. Demo 1. 基本知识 相关的源码如下:web-storage-cache WebStorageCache 是一个用于扩展 HTML5 的 localStorage 和 sessionStorage 的库,增加了超时时间管理和序列化功能。它可以存储 JSON 对象,并且在存储数据时可以方便…

AJ-Report:一款开源且非常强大的数据可视化大屏和报表工具

嗨,大家好,我是小华同学,关注我们获得“最新、最全、最优质”开源项目和工作学习方法 AJ-Report是一个基于Java的开源报表工具,它集成了ECharts、Ant Design Vue等前端技术,致力于为企业提供一站式的数据可视化解决方案…

K3梅林系统 强制刷机方法

对于梅林系统升级过过程中出现的无限重启卡屏的解决方案 黄色字体对应于K3 目前机器 主要分成两个关键步骤:第一、进CFE;第二、用TFTP传入文件进行刷机。 第一: 1硬件网线直接连接K3路由LAN口。 2带有无线网卡的电脑需要屏蔽掉无线网卡&…

数据结构 ——— 链式二叉树oj题:相同的树

目录 题目要求 手搓两个链式二叉树 代码实现 题目要求 给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 手搓两个链式二叉树 代码演示&…

对标 Windows Copilot 的 UOS AI,升级后更能打了

进入 2024 年,AI 应用迎来大爆发,不仅各类应用纷纷宣称“AI 赋能”,操作系统也不例外。前有 Windows Copilot,后有 Apple Intelligent,手机行业更是积极,各种 AI 手机纷纷发布。国产信创系统自然也不甘落后…

leetcode912.排序数组的题解

题目描述: 题目要求在不使用任何内置函数的情况下解决问题,时间复杂度为 O(nlog(n))。 笔者使用了快速排序,但是直接使用最原始的快速排序,有些特殊的测试用例会超时。 1)如果数组本身基本有序,则使用原始…

迷你版VFB,极简的Freebasic开发IDE-VB7-vb6编程开发

支持Freebasic, Js, vbs, Html5开发,可以发布成控制台程序,EXE,标准DLL,OCX控件,网站 类似Vscode, Aardio,按键精灵一样的开发工具。 本来芳芳只是想做个按键精灵办公小工具,结果一下小心搞了一…

【综合案例】使用React编写B站评论案例

一、效果展示 默认效果,一开始默认按照最热进行排序 发布了一条评论 按照最新进行排序 按照最新进行排序 二、效果说明 页面上默认有3条评论,且一开始进入页面的时候是按照点赞数量进行倒序排列展示,可以点击【最热 、最新】进行排序的切换。…

SSL证书申请终极指南

SSL验证是确认网站或服务器提供的SSL 证书的真实性和有效性的过程。 SSL证书验证是确认网站或服务器提供的SSL证书的真实性和有效性的过程。SSL证书是用于在客户端(例如Web浏览器)和服务器之间建立安全连接的数字证书。它们对于确保通过互联网传输的数据…