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

CF 118A.String Task(Java实现)

题目分析

        输入一个字符串,遍历每一个字符,如果是元音字母就删除,辅音字母就在其前面增加一个'.',且所有字母输出都是小写。

思路分析

        将输入的字符串改为字符数组,考虑到任意位置插入的情况,所以主要选择LinkedList,并遍历判断如果是元音就remove。如果是辅音,首先判断是否是大写,如果是大写就调用set方法改为小写,然后在其位置add('.')。

代码

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        char[] arr=sc.nextLine().toCharArray();//存值并改为char数组
        LinkedList<Character> list=new LinkedList<>();//使用LinkedList
        ArrayList<Character> alist=new ArrayList<>(Arrays.asList('A','O','Y','E','U','I'));//用于存储元音字符
        for (char c:arr){//遍历数组
            list.add(c);//赋值给list
        }
        for (int i =0;i< list.size();i++){//遍历list
            if (alist.contains(Character.toUpperCase(list.get(i)))){//如果属于元音字母
                list.remove(i);//就删除
                i--;//由于删除后长度会改变所以i跟着改变
            }else {//如果是辅音字母
                if (Character.isUpperCase(list.get(i))){//先判断是不是大写
                    list.set(i,Character.toLowerCase(list.get(i)));//如果是就改为小写
                }
                list.add(i,'.');//再在原来的位置添加一个'.',由于是链表,后续元素自动排列
                i++;//同理改变长度后改变i
            }
        }
        for (char c:list){//遍历list
            System.out.print(c);//输出结果
        }
    }
}

        感谢您能够看到这里,一起见证小何同学的算法学习,如果您有不同的见解,希望能得到您的指点和点悟;如果您是和我一样的同学,也希望这篇文章能对您有所帮助。

相关文章:

  • Linux基础开发工具——vim(5)
  • NC2227_约瑟夫环
  • 代码随想录算法训练营第三十天 | 卡码网46.携带研究材料(二维解法)、卡码网46.携带研究材料(滚动数组)、LeetCode416.分割等和子集
  • Kubernetes Service服务发现dns之CoreDNS
  • 快速排序算法详解
  • 赛博算命之“八字排盘“的JAVA实现
  • 128陷阱
  • uniapp-原生android插件开发摘要
  • Android Studio安装与配置详解
  • 软件工程-软件测试
  • fortify安全扫描Access Control: Database问题解决
  • Java 8 到 Java 17 主要新特性
  • 高频 SQL 50 题(基础版)_1141. 查询近30天活跃用户数
  • 私有化部署大模型推理性能分析
  • SQL的select语句完整的执行顺序
  • 【Java基础】Java 中的接口
  • 云服务培训六-云上安全与管理
  • 虚拟机Linux操作(持续更新ing)
  • Spring拦截器与DispatcherServlet
  • 鸿蒙通过用户首选项实现数据持久化
  • 网站建设后需要录入/谷歌seo工具
  • 岳阳网站建设方案/百度指数的主要用户是
  • 中国太平保险集团官方网站/口碑营销的案例
  • 武汉市江汉区疫情最新消息/电脑系统优化软件十大排名