Java统计输入字符的英文字母、空格、数字和其它

Java 统计输入字符的英文字母、空格、数字和其他字符可以使用字符流的方式读取输入,然后通过判断每个字符的 Unicode code point 值来区分字符类型,再统计出每种类型的字符个数。下面是具体实现的完整攻略。

实现步骤

  1. 创建一个字符缓冲区的读取器 BufferedReader,从标准输入读取输入等。
  2. 循环读取每个字符,直到读到输入流末尾。
  3. 对于每个字符,判断其 Unicode code point 值的范围,统计出它属于哪种类型的字符。
  4. 最后输出每种类型的字符个数。

以下是具体代码实现。

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

public class CharTypeCount {
    public static void main(String[] args) throws IOException {
        // 创建缓冲区读取器
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

        // 初始化统计变量
        int letterCnt = 0, spaceCnt = 0, digitCnt = 0, otherCnt = 0;

        // 循环读取每个字符
        int ch;
        while ((ch = reader.read()) != -1) {
            // 判断属于哪种类型的字符
            if (Character.isLetter(ch)) {
                letterCnt++;
            } else if (Character.isWhitespace(ch)) {
                spaceCnt++;
            } else if (Character.isDigit(ch)) {
                digitCnt++;
            } else {
                otherCnt++;
            }
        }

        // 输出每种类型的字符个数
        System.out.println("Letter: " + letterCnt);
        System.out.println("Space: " + spaceCnt);
        System.out.println("Digit: " + digitCnt);
        System.out.println("Other: " + otherCnt);
    }
}

示例说明

示例1

输入:

Hello, world!

输出:

Letter: 10
Space: 1
Digit: 0
Other: 1

解释:

该输入包含 10 个字母、1 个空格和 1 个其他字符。

示例2

输入:

123 456

输出:

Letter: 0
Space: 2
Digit: 6
Other: 0

解释:

该输入包含 2 个空格和 6 个数字。

阅读剩余 47%

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java统计输入字符的英文字母、空格、数字和其它 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • 如何在JDK 9中更简洁使用 try-with-resources 语句

    在 JDK 9 中,你可以更加简洁地使用 try-with-resources 语句。下面,我们来一步步讲解具体的步骤。 1. JDK 9 try-with-resources 简化语法 在 JDK 9 中,简化了 try-with-resources 语法。以前,你需要在 try 语句中申明一个资源,像这样: try (SomeResource resou…

    Java 2023年5月27日
    00
  • JSP加载JS文件不起作用的有效解决方法

    下面是关于“JSP加载JS文件不起作用的有效解决方法”的完整攻略: 问题背景 在JSP中使用JavaScript是非常常见的,但是有时候我们可能会遇到这样的问题:在JSP中引用的JS文件并没有起作用,也就是说JS代码没有被执行。这种情况下我们该怎么解决呢? 解决方法 具体的方法是在JSP文件中使用<script>标签引入JS文件时,要注意添加ty…

    Java 2023年6月15日
    00
  • java 如何将多种字符串格式 解析为Date格式

    要将多种字符串格式解析为Date格式,可以借助Java中的SimpleDateFormat类来实现。下面是完整的攻略: 确认要解析的日期字符串的格式在解析日期字符串之前,需要先确认要解析的日期字符串的格式。Java中通常使用日期格式化字符串来表示不同格式的日期字符串。例如,“yyyy-MM-dd HH:mm:ss”表示年份-月份-日时:分:秒的日期格式,而“…

    Java 2023年5月20日
    00
  • 深入剖析理解AsyncGetCallTrace源码底层原理

    深入剖析理解AsyncGetCallTrace源码底层原理 什么是AsyncGetCallTrace AsyncGetCallTrace是一个用于Java虚拟机(JVM)性能分析的工具,它可以在不中断程序运行的情况下获取程序的方法调用栈、线程信息等数据。它以代理方式与目标JVM通信,可以用于对JVM运行状态进行监控和调试。 底层原理 AsyncGetCall…

    Java 2023年5月26日
    00
  • 什么是Java Agent?

    Java Agent是一种Java应用程序的附加组件,它可以通过Java虚拟机的自定义类加载器来加载并执行,从而在应用程序生命周期内提供额外的功能和服务。Java Agent常见的应用场景包括:性能监测、应用程序调试、代码覆盖率和行为分析、安全检测、依赖项注入等。本文将介绍Java Agent的完整使用攻略,并给出两个实际示例说明。 一、Java Agent…

    Java 2023年5月11日
    00
  • Java的Spring框架中DAO数据访问对象的使用示例

    下面是讲解Java的Spring框架中DAO数据访问对象的使用示例的完整攻略。 什么是DAO模式? DAO,即Data Access Object(数据访问对象),是一种数据持久化技术的最常见的设计模式之一,用于将应用程序的业务逻辑和底层数据存储之间的交互从彼此分离。DAO模式的主要目的是提供一种通用的API来访问底层数据存储和操作数据对象。 什么是Spri…

    Java 2023年5月20日
    00
  • Java简化复杂系统调用的门面设计模式

    Java简化复杂系统调用的门面设计模式,也叫做Facade模式,是一种结构型设计模式,目的是为系统中的高层模块提供简化、统一的接口,使系统更易于使用和维护。 下面是实现Java门面设计模式的完整攻略: 1. 定义门面类 首先,我们需要定义一个门面类来隐藏系统中的复杂性。这个类需要提供一个简单的接口,封装系统中的一些复杂操作。 public class Sys…

    Java 2023年5月24日
    00
  • Java实现克隆的三种方式实例总结

    下面我将为你详细讲解如何实现Java克隆的三种方式。 1. Java实现克隆的三种方式 在Java中,对象的克隆可以通过直接复制或者序列化来完成。实现Java对象克隆一般有三种方式: 1.1. 浅克隆 浅克隆只复制了对象本身,不包括对象中的引用类型字段。假设有一个简单的Person类,它包括一个基本类型和一个引用类型字段: public class Pers…

    Java 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部