当前位置: 首页 > article >正文

蓝桥杯试题:串的处理

活动发起人@小虚竹 想对你说:

这是一个以写作博客为目的的创作活动,旨在鼓励大学生博主们挖掘自己的创作潜能,展现自己的写作才华。如果你是一位热爱写作的、想要展现自己创作才华的小伙伴,那么,快来参加吧!我们一起发掘写作的魅力,书写出属于我们的故事。我们诚挚邀请你参加为期14天的创作挑战赛!

提醒:在发布作品前,请将不需要的内容删除。

一、题目描述

在实际的开发工作中,对字符串的处理是最常见的编程任务。本题目即是要求程序对用户输入的串进行处理。具体规则如下:

  1. 把每个单词的首字母变为大写。

  2. 把数字与字母之间用下划线字符(_)分开,使得更清晰

  3. 把单词中间有多个空格的调整为 1 个空格。

输入描述

用户输入的串中只有小写字母,空格和数字,不含其它的字母或符号。每个单词间由 1 个或多个空格分隔。假设用户输入的串长度不超过 200 个字符。

输出描述

输出处理好的字符串。

输入输出样例

示例
you and me what cpp2005program

输出 

You And Me What Cpp_2005_program

二、代码展示 

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        String str = scan.nextLine();
        char[] c = str.toCharArray();
        int n = c.length;
        StringBuilder st = new StringBuilder();
        boolean isNewWord = true; // 标记是否为新单词的开始

        for (int i = 0; i < n; i++) {
            char x = c[i];
            
            if (x >= 'a' && x <= 'z') {
                if (isNewWord) {
                    x = Character.toUpperCase(x);
                    isNewWord = false;
                }
                st.append(x);
            } else if (x == ' ') {
                if (!isNewWord) { // 只有在不是新单词开始时才添加空格
                    st.append(x);
                    isNewWord = true; // 下一个非空格字符将是新单词的开始
                }
            } else if (x >= '0' && x <= '9') {
                if (i > 0 && c[i - 1] >= 'a' && c[i - 1] <= 'z') {
                    st.append('_');
                }
                st.append(x);
                isNewWord = true; // 数字后可能是新单词的开始
            } else {
                // 处理其他字符(根据需求,可以选择忽略或处理)
                st.append(x);
                isNewWord = true;
            }
        }

        System.out.println(st.toString());
    }
}


http://www.kler.cn/a/555872.html

相关文章:

  • 深度解析Token:从技术原理到商业应用的全栈指南
  • 【Kubernetes】常用命令全解析:从入门到实战(下)
  • JavaEE基础之- Servlet相关
  • 单片机中有FLASH为啥还需要EEROM?
  • 【探商宝】2025年2月科技与商业热点头条:AI竞赛、量子计算与芯片市场新格局
  • OpenAI ChatGPT在心理治疗领域展现超凡同理心,通过图灵测试挑战人类专家
  • Linux内核实时机制7 - 实时改造机理 - 软中断优化下
  • 排序02(数据结构初阶)
  • 【DiffGAD: A Diffusion-based Unsupervised Graph Anomaly Detector】
  • 网页制作05-html,css,javascript初认识のhtml表格的创建
  • 嵌入式之PWM
  • 精选模块-ES6模块
  • 基于51单片机的秒表系统proteus仿真
  • FFmpeg+WebSocket+JsMpeg实时视频流实现方案
  • Windows 图形显示驱动开发-查询 WDDM(3.2) 功能支持和启用
  • springboot整合mybatis-plus【详细版】
  • 数据结构:动态数组vector
  • 基于Flask的租房信息可视化系统的设计与实现
  • 卷积与动态特征选择:重塑YOLOv8的多尺度目标检测能力
  • 精准监测,智能预警,为数据中心安全保驾护航