Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $YECBGYFECGEAFWHA as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2

Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $BBWFDDBHHYHDXXAB as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2
Java中输入字符串单词百分比及特定模式识别教程_创想鸟

Java中输入字符串单词百分比及特定模式识别教程

Java中输入字符串单词百分比及特定模式识别教程

本教程详细介绍了如何在Java中高效处理用户输入的字符串集合,并计算其中符合特定模式(如纯字母单词或以大写字母开头的单词)的字符串百分比。文章着重讲解了输入收集、正则表达式的应用、模块化计数方法的实现以及最终结果的展示,旨在帮助读者掌握字符串分析与处理的关键技巧。

在java应用程序开发中,经常需要对用户输入的字符串进行验证和统计。例如,我们可能需要统计用户输入的所有字符串中,有多少是纯粹的单词,或者有多少是以大写字母开头的。本教程将指导您如何构建一个健壮的java程序来完成这些任务。

1. 收集用户输入

首先,我们需要获取用户希望输入的字符串数量,并确保这个数量是有效的数字。接着,程序将根据这个数量逐一收集用户输入的字符串。

1.1 获取字符串数量

使用 Scanner 类获取用户输入的字符串总数。关键在于使用 try-catch 块来处理 NumberFormatException,以防用户输入非数字内容。

import java.util.Scanner;public class StringAnalysis {    public static void main(String[] args) {        Scanner scan = new Scanner(System.in);        int numOfStrings = 0;        boolean validInput = false;        do {            System.out.print("请输入字符串总数: ");            try {                numOfStrings = Integer.parseInt(scan.nextLine());                validInput = true;            } catch (NumberFormatException e) {                System.out.println("输入无效,请输入一个数字。");                validInput = false;            }        } while (!validInput);        // ... 后续代码    }    // ... 其他方法}

1.2 存储所有输入的字符串

立即学习“Java免费学习笔记(深入)”;

一个常见的错误是在用户输入时立即进行统计。为了能够对所有输入进行全面的分析,最佳实践是先将所有字符串存储在一个数组中,待所有输入完成后再进行统一处理。

        String[] stringArray = new String[numOfStrings];        for (int i = 0; i < numOfStrings; i++) {            System.out.print("请输入第 " + (i + 1) + " 个字符串: ");            String input = scan.nextLine();            stringArray[i] = input;        }

这里我们使用了从0开始的循环索引 i,这是Java数组的标准做法,更符合习惯。

2. 使用正则表达式进行字符串模式匹配

正则表达式 (Regex) 是处理字符串模式的强大工具。Java的 String.matches() 方法可以方便地检查一个字符串是否与给定的正则表达式匹配。

2.1 匹配纯字母单词

一个纯字母的单词通常只包含大小写英文字母。我们可以使用正则表达式 ^[a-zA-Z]*$ 来匹配这种模式。

百度文心百中 百度文心百中

百度大模型语义搜索体验中心

百度文心百中 22 查看详情 百度文心百中 ^:匹配字符串的开始。[a-zA-Z]:匹配任何大小写英文字母。*:表示前面的字符([a-zA-Z])可以出现零次或多次。$:匹配字符串的结束。

2.2 匹配以大写字母开头的单词

要匹配以大写字母开头的字符串,可以使用正则表达式 ^[A-Z].*。

^:匹配字符串的开始。[A-Z]:匹配一个大写英文字母。.:匹配任何字符(除了行终止符)。*:表示前面的字符(.)可以出现零次或多次。

3. 模块化计数方法

为了提高代码的可重用性和可读性,我们可以创建一个独立的辅助方法来根据给定的正则表达式模式统计数组中匹配的字符串数量。

    private static int countStrings(String[] strings, String pattern) {        int count = 0;        for (String str : strings) {            if (str.matches(pattern)) {                count++;            }        }        return count;    }

这个 countStrings 方法接收一个字符串数组和一个正则表达式模式作为参数,遍历数组并返回匹配模式的字符串数量。

4. 计算百分比并展示结果

在所有字符串收集完毕并统计出符合特定模式的数量后,就可以计算相应的百分比并输出结果。

        System.out.println("n--- 分析结果 ---");        System.out.println("总字符串数: " + numOfStrings);        // 统计纯字母单词的百分比        int validWordCount = countStrings(stringArray, "^[a-zA-Z]*$");        double percentageOfWords = (double) validWordCount / numOfStrings * 100;        System.out.printf("纯字母单词的百分比: %.2f%%n", percentageOfWords);        // 统计以大写字母开头的单词的百分比        int startsWithCapitalCount = countStrings(stringArray, "^[A-Z].*");        double percentageOfCapitalWords = (double) startsWithCapitalCount / numOfStrings * 100;        System.out.printf("以大写字母开头的单词百分比: %.2f%%n", percentageOfCapitalWords);        scan.close(); // 关闭Scanner

这里使用了 String.format() 或 System.out.printf() 来格式化输出,保留两位小数,并正确显示百分号。

5. 完整示例代码

结合上述所有部分,以下是完整的Java代码示例:

import java.util.Scanner;public class StringAnalysis {    public static void main(String[] args) {        Scanner scan = new Scanner(System.in);        int numOfStrings = 0;        boolean validInput = false;        // 1. 获取用户输入的字符串总数        do {            System.out.print("请输入字符串总数: ");            try {                numOfStrings = Integer.parseInt(scan.nextLine());                if (numOfStrings < 0) { // 额外增加对负数的校验                    System.out.println("字符串总数不能为负数,请重新输入。");                    validInput = false;                } else {                    validInput = true;                }            } catch (NumberFormatException e) {                System.out.println("输入无效,请输入一个数字。");                validInput = false;            }        } while (!validInput);        // 2. 存储所有输入的字符串        String[] stringArray = new String[numOfStrings];        for (int i = 0; i  0) { // 避免除以零错误            // 统计纯字母单词的百分比            int validWordCount = countStrings(stringArray, "^[a-zA-Z]*$");            double percentageOfWords = (double) validWordCount / numOfStrings * 100;            System.out.printf("纯字母单词的百分比: %.2f%%n", percentageOfWords);            // 统计以大写字母开头的单词的百分比            int startsWithCapitalCount = countStrings(stringArray, "^[A-Z].*");            double percentageOfCapitalWords = (double) startsWithCapitalCount / numOfStrings * 100;            System.out.printf("以大写字母开头的单词百分比: %.2f%%n", percentageOfCapitalWords);        } else {            System.out.println("没有输入任何字符串,无法计算百分比。");        }        scan.close(); // 关闭Scanner资源    }    /**     * 统计字符串数组中与给定正则表达式模式匹配的字符串数量。     *     * @param strings 待检查的字符串数组。     * @param pattern 用于匹配的正则表达式。     * @return 匹配模式的字符串数量。     */    private static int countStrings(String[] strings, String pattern) {        int count = 0;        for (String str : strings) {            if (str != null && str.matches(pattern)) { // 增加null检查以提高健壮性                count++;            }        }        return count;    }}

6. 注意事项与最佳实践

输入与处理分离: 始终建议先收集所有用户输入,再进行批量处理和分析。这使得代码逻辑更清晰,也更容易进行错误处理和功能扩展。正则表达式的强大: 掌握常用的正则表达式可以极大地简化字符串模式匹配的复杂性。Java的 String.matches() 方法是其主要接口。模块化设计: 将重复的逻辑(如计数)封装到独立的辅助方法中,可以提高代码的复用性、可读性和可维护性。异常处理: 对用户输入进行严格的校验和异常处理(如 NumberFormatException),可以增强程序的健壮性,防止因非法输入导致程序崩溃。资源管理: 及时关闭 Scanner 等资源,避免资源泄露。避免除以零: 在计算百分比之前,检查总数是否大于零,以避免 ArithmeticException。

通过遵循这些原则和方法,您可以有效地处理和分析Java中的字符串输入,构建出更健壮、更专业的应用程序。

以上就是Java中输入字符串单词百分比及特定模式识别教程的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/220738.html

赞 (0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
滴答清单怎么共享清单给好友协作_滴答清单清单共享与多人协作设置教程
上一篇 2026年9月28日 18:19:52
币安(Binance)期货推出新的 ASTER 和 TRADOOR 合约
下一篇 2025年12月11日 17:28:32

相关推荐

  • 怎么用豆包AI帮我优化递归算法 递归算法优化的AI解决方案

    怎么用豆包AI帮我优化递归算法 递归算法优化的AI解决方案怎么用豆包AI帮我优化递归算法 递归算法优化的AI解决方案怎么用豆包AI帮我优化递归算法 递归算法优化的AI解决方案怎么用豆包AI帮我优化递归算法 递归算法优化的AI解决方案

    全民k歌:歌房舞台效果开启指南 腾讯出品的全民K歌,以其智能打分、修音、混音和专业音效等功能,深受K歌爱好者喜爱。本教程将详细指导您如何在全民K歌歌房中开启炫酷的舞台效果。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ 步骤: 打开全民K歌…

    2026年9月28日 • 用户投稿
    100
  • sublime如何高亮显示当前编辑行_Sublime当前编辑行高亮显示设置指南

    sublime如何高亮显示当前编辑行_Sublime当前编辑行高亮显示设置指南sublime如何高亮显示当前编辑行_Sublime当前编辑行高亮显示设置指南sublime如何高亮显示当前编辑行_Sublime当前编辑行高亮显示设置指南sublime如何高亮显示当前编辑行_Sublime当前编辑行高亮显示设置指南

    启用Sublime Text当前行高亮需在用户配置中添加”highlight_line”: true,并可通过修改主题文件自定义颜色,注意语法正确与作用域匹配。 Sublime Text 高亮显示当前编辑行,能让你更专注于正在编写的代码,减少视觉疲劳,提高效率。简单来说,通过…

    2026年9月28日 • 用户投稿
    200
  • Java Mail发送会议邀请时处理时区问题的教程

    Java Mail发送会议邀请时处理时区问题的教程Java Mail发送会议邀请时处理时区问题的教程Java Mail发送会议邀请时处理时区问题的教程Java Mail发送会议邀请时处理时区问题的教程

    本文档旨在帮助开发者在使用Java Mail发送会议邀请时正确处理时区问题,避免会议时间在不同时区显示错误。我们将通过示例代码演示如何设置会议邀请的开始和结束时间,并指定正确的时区,确保会议时间在接收者的日历中准确显示。 在使用Java Mail发送会议邀请时,时区问题是一个常见的困扰。如果未正确处…

    2026年9月28日 • 用户投稿
    100
  • 谷歌发布实验性 AI 工具 Mixboard,支持使用自然语言生成创意板

    谷歌发布实验性 AI 工具 Mixboard,支持使用自然语言生成创意板谷歌发布实验性 AI 工具 Mixboard,支持使用自然语言生成创意板谷歌发布实验性 AI 工具 Mixboard,支持使用自然语言生成创意板谷歌发布实验性 AI 工具 Mixboard,支持使用自然语言生成创意板

    谷歌近日发布了一款实验性 ai 创意工具——mixboard,这是一款依托生成式 ai 技术打造的概念设计板,主打“开放式画布”理念,致力于帮助用户高效地将创意可视化。 https://www.php.cn/link/4fa0d97504185879b6e7524dda47d98b 据官方介绍,Mi…

    2026年9月28日 • 用户投稿
    000
  • Win7网上邻居怎么添加?

    Win7网上邻居怎么添加?Win7网上邻居怎么添加?Win7网上邻居怎么添加?Win7网上邻居怎么添加?

    在windows 10系统问世之前,许多用户都在使用windows 7系统。然而,部分用户在系统设置中找不到网上邻居功能,实际上只需要手动添加即可。接下来,本文将为您详细介绍如何在windows 7中添加网上邻居。 网上邻居是一种方便的工具,它能够快速访问网络中的共享计算机、打印机以及其他资源。如果…

    2026年9月28日 • 用户投稿
    200
  • Java Mail iCal会议邀请时区偏移问题详解与解决方案

    Java Mail iCal会议邀请时区偏移问题详解与解决方案Java Mail iCal会议邀请时区偏移问题详解与解决方案Java Mail iCal会议邀请时区偏移问题详解与解决方案Java Mail iCal会议邀请时区偏移问题详解与解决方案

    本文旨在解决Java Mail发送iCal会议邀请时因时区处理不当导致的会议时间偏移问题。核心问题在于iCal DTSTART和DTEND属性末尾的’Z’字符,它将时间指定为UTC,从而忽略了本地时区设置。教程将详细介绍iCal时间格式规范,并提供基于Java java.ti…

    2026年9月28日 • 用户投稿
    100
  • 程序员如何安装Sublime_高效代码编辑器安装配置指南

    程序员如何安装Sublime_高效代码编辑器安装配置指南程序员如何安装Sublime_高效代码编辑器安装配置指南程序员如何安装Sublime_高效代码编辑器安装配置指南程序员如何安装Sublime_高效代码编辑器安装配置指南

    Sublime Text是轻量高效的跨平台代码编辑器,支持多语言和插件扩展。首先从官网下载安装,可选激活去除提示;接着通过控制台安装Package Control插件管理工具;再使用命令面板安装Emmet、BracketHighlighter等常用插件;最后在用户设置中配置tab大小、换行、高亮等个…

    2026年9月28日 • 用户投稿
    100
  • TikTok私信显示异常怎么办

    TikTok私信显示异常怎么办TikTok私信显示异常怎么办TikTok私信显示异常怎么办TikTok私信显示异常怎么办

    私信异常多因设置、规则或技术问题,需检查互关状态、隐私权限、年龄限制及网络状况,排除违规行为并更新应用,必要时联系官方客服处理。 当TikTok私信显示异常时,可能是由多种原因导致的,包括账号设置、平台规则限制或技术问题。要解决这个问题,需要从多个方面逐一排查和处理。 检查账号设置与互动条件 私信功…

    2026年9月28日 • 用户投稿
    100
  • 豆包 AI 大模型如何和 AI 模型风格设计工具结合设计风格?攻略​

    豆包 AI 大模型如何和 AI 模型风格设计工具结合设计风格?攻略​豆包 AI 大模型如何和 AI 模型风格设计工具结合设计风格?攻略​豆包 AI 大模型如何和 AI 模型风格设计工具结合设计风格?攻略​豆包 AI 大模型如何和 AI 模型风格设计工具结合设计风格?攻略​

    全民k歌:歌房舞台效果开启指南 腾讯出品的全民K歌,以其智能打分、修音、混音和专业音效等功能,深受K歌爱好者喜爱。本教程将详细指导您如何在全民K歌歌房中开启炫酷的舞台效果。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ 步骤: 打开全民K歌…

    2026年9月28日 • 用户投稿
    200
  • 抖音的私信关了怎么开启?私信关了对方发信息显示什么?

    抖音的私信关了怎么开启?私信关了对方发信息显示什么?抖音的私信关了怎么开启?私信关了对方发信息显示什么?抖音的私信关了怎么开启?私信关了对方发信息显示什么?抖音的私信关了怎么开启?私信关了对方发信息显示什么?

    抖音的私信功能是用户之间交流的重要工具,但有时可能因设置调整而被关闭。本文将为您详细说明如何重新打开私信权限,并介绍关闭后他人发送消息时会看到哪些提示,助您更好地掌控社交互动与隐私安全。 一、抖音私信关闭了如何重新开启? 若您发现无法收到或发送私信,很可能是私信接收权限被关闭。只需几个简单步骤即可恢…

    2026年9月28日 • 用户投稿
    100
  • 解决Java Mail发送iCalendar邀请时的时间区域问题

    解决Java Mail发送iCalendar邀请时的时间区域问题解决Java Mail发送iCalendar邀请时的时间区域问题解决Java Mail发送iCalendar邀请时的时间区域问题解决Java Mail发送iCalendar邀请时的时间区域问题

    本文将围绕在使用Java Mail发送iCalendar会议邀请时,会议时间出现偏差的问题展开,重点讨论如何正确处理时区信息。正如摘要所述,问题的根源在于iCalendar规范对时间格式的严格要求,以及开发者对时区处理的疏忽。下面我们将深入分析原因,并提供详细的解决方案。 理解iCalendar中的…

    2026年9月28日 • 用户投稿
    200
  • Linux ulimit命令详解与使用方法

    ulimit用于限制进程资源,如文件大小、进程数和内存;默认显示文件大小软限制,常用选项包括-f、-n、-u等,软限制可由用户调整,硬限制需root修改;通过ulimit -a查看所有限制,设置如ulimit -n 1024可限制打开文件数;永久配置需编辑/etc/security/limits.c…

    2026年9月28日
    100
  • Java Mail iCal会议邀请中的时区处理:避免时间偏移的专业指南

    Java Mail iCal会议邀请中的时区处理:避免时间偏移的专业指南Java Mail iCal会议邀请中的时区处理:避免时间偏移的专业指南Java Mail iCal会议邀请中的时区处理:避免时间偏移的专业指南Java Mail iCal会议邀请中的时区处理:避免时间偏移的专业指南

    本教程深入探讨了Java Mail发送iCal会议邀请时常见的时区偏移问题。核心在于iCal DTSTART和DTEND字段对UTC时间(以’Z’结尾)的默认解释。文章将详细阐述如何利用java.time API正确构造本地时间或带有时区标识的时间字符串,从而确保会议邀请在接…

    2026年9月28日 • 用户投稿
    200
  • 荣耀手机摄像头如何调整以提升拍摄质量?教你设置高画质的步骤

    答案:荣耀手机拍出高画质照片需善用专业模式与AI功能。清洁镜头后,根据场景选择模式,如夜景、人像或专业模式;在专业模式中调整ISO、快门速度、EV、白平衡和对焦;开启HDR和构图辅助线提升细节与构图;利用AI摄影优化色彩,结合高分辨率与三脚架保持稳定,不同光线下灵活设置参数,实现清晰出彩的拍摄效果。…

    2026年9月28日
    100
  • VSCode如何集成天文数据分析工具 VSCode天文数据处理项目的环境配置

    安装anaconda或miniconda以管理python环境和依赖;2. 下载并安装vscode;3. 安装python、jupyter、remote – ssh和gitlens等扩展以增强功能;4. 使用conda或venv创建名为astro_env的虚拟环境并激活;5. 在虚拟环境…

    2026年9月28日
    300
  • 用高刷带鱼屏打游戏 Vidda 三色激光投影亮相 AWE2024

    用高刷带鱼屏打游戏 Vidda 三色激光投影亮相 AWE2024用高刷带鱼屏打游戏 Vidda 三色激光投影亮相 AWE2024用高刷带鱼屏打游戏 Vidda 三色激光投影亮相 AWE2024用高刷带鱼屏打游戏 Vidda 三色激光投影亮相 AWE2024

    vidda三色激光投影于2024年3月14日在上海awe中国家电及消费电子博览会再次展示其技术。除了传统的电影观赏体验,vidda三色激光投影还展示了一种新的玩法——通过两台投影仪拼接成超宽屏幕,为高刷新率游戏带来全新的沉浸体验。这种创新的应用方式吸引了众多参观者的目光,展示了投影技术在娱乐领域的无…

    2026年9月28日 • 用户投稿
    100
  • JNA高级教程:如何高效映射C语言嵌套结构体与联合体

    JNA高级教程:如何高效映射C语言嵌套结构体与联合体JNA高级教程:如何高效映射C语言嵌套结构体与联合体JNA高级教程:如何高效映射C语言嵌套结构体与联合体JNA高级教程:如何高效映射C语言嵌套结构体与联合体

    本教程深入探讨了JNA在Java与C语言之间进行复杂数据类型映射的机制,特别是针对包含嵌套结构体和联合体(Union)的场景。文章通过分析一个实际的错误案例,详细阐述了JNA对Java类继承Structure或Union的严格要求,并提供了两种核心解决方案:一是直接构建与C语言定义精确对应的JNA映…

    2026年9月28日 • 用户投稿
    100
  • sublime怎么配置python的虚拟环境_Python虚拟环境集成指南

    sublime怎么配置python的虚拟环境_Python虚拟环境集成指南sublime怎么配置python的虚拟环境_Python虚拟环境集成指南sublime怎么配置python的虚拟环境_Python虚拟环境集成指南sublime怎么配置python的虚拟环境_Python虚拟环境集成指南

    答案是通过创建自定义构建系统和配置项目文件确保Sublime Text使用指定虚拟环境。具体做法包括:在.sublime-build文件中指定虚拟环境Python解释器路径,结合.cmd字段设置无缓冲运行参数-u,并在.sublime-project文件中为项目定义独立的build_systems与…

    2026年9月28日 • 用户投稿
    100
  • 如何在Docker中安装Linux环境_Docker容器运行Ubuntu系统

    如何在Docker中安装Linux环境_Docker容器运行Ubuntu系统如何在Docker中安装Linux环境_Docker容器运行Ubuntu系统如何在Docker中安装Linux环境_Docker容器运行Ubuntu系统如何在Docker中安装Linux环境_Docker容器运行Ubuntu系统

    首先拉取Ubuntu镜像并启动容器,使用docker pull ubuntu:20.04和docker run -it命令进入系统,安装软件需执行apt update并配置常用工具,通过-v参数实现文件挂载共享,建议用Dockerfile或提交容器保存配置以防丢失。 在Docker中安装Linux环…

    2026年9月28日 • 用户投稿
    100
  • 小红书发作品怎么屏蔽好友?小红书发作品屏蔽好友能看到吗

    小红书发作品怎么屏蔽好友?小红书发作品屏蔽好友能看到吗小红书发作品怎么屏蔽好友?小红书发作品屏蔽好友能看到吗小红书发作品怎么屏蔽好友?小红书发作品屏蔽好友能看到吗小红书发作品怎么屏蔽好友?小红书发作品屏蔽好友能看到吗

    在当下信息高速流通的时代,小红书已成为许多人记录生活、分享观点的重要平台。然而,并非所有内容都适合向所有人展示,尤其是当某些好友可能对特定内容产生误解或不适时。那么,如何在发布作品时屏蔽特定好友?被屏蔽的人还能看到吗?接下来,我将为你全面解析。 一、为何需要在小红书屏蔽好友 1. 维护个人隐私:部分…

    2026年9月28日 • 用户投稿
    300

发表回复

登录后才能评论
关注微信