CF 118A.String Task(Java实现)

题目分析

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

思路分析

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

代码

java 复制代码
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);//输出结果
        }
    }
}

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

相关推荐
FPGAI12 分钟前
Qt编程之信号与槽
开发语言·qt
Swift社区35 分钟前
从 JDK 1.8 切换到 JDK 21 时遇到 NoProviderFoundException 该如何解决?
java·开发语言
0wioiw01 小时前
Go基础(④指针)
开发语言·后端·golang
DKPT1 小时前
JVM中如何调优新生代和老生代?
java·jvm·笔记·学习·spring
phltxy1 小时前
JVM——Java虚拟机学习
java·jvm·学习
How_doyou_do2 小时前
数据传输优化-异步不阻塞处理增强首屏体验
开发语言·前端·javascript
jingfeng5142 小时前
C++11可变参数模板、emplace系列接口、包装器
开发语言·c++
云天徽上2 小时前
【数据可视化-107】2025年1-7月全国出口总额Top 10省市数据分析:用Python和Pyecharts打造炫酷可视化大屏
开发语言·python·信息可视化·数据挖掘·数据分析·pyecharts
Tina表姐3 小时前
(C题|NIPT 的时点选择与胎儿的异常判定)2025年高教杯全国大学生数学建模国赛解题思路|完整代码论文集合
c语言·开发语言·数学建模