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);//输出结果
        }
    }
}

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

相关推荐
测试员周周4 小时前
【Appium 系列】第16节-WebView-H5上下文切换 — 混合应用的自动化难点
运维·开发语言·人工智能·功能测试·appium·自动化·测试用例
Mahir087 小时前
Spring 循环依赖深度解密:从问题本质到三级缓存源码级解析
java·后端·spring·缓存·面试·循环依赖·三级缓存
杜子不疼.7 小时前
【C++ AI 大模型接入 SDK】 - DeepSeek 模型接入(上)
开发语言·c++·chatgpt
加号37 小时前
【C#】 串口通信技术深度解析及实现
开发语言·c#
sycmancia8 小时前
Qt——编辑交互功能的实现
开发语言·qt
RyFit8 小时前
SpringAI 常见问题及解决方案大全
java·ai
石山代码8 小时前
C++ 内存分区 堆区
java·开发语言·c++
绝知此事8 小时前
【算法突围 01】线性结构与哈希表:后端开发的收纳术
java·数据结构·算法·面试·jdk·散列表
无风听海8 小时前
C# 隐式转换深度解析
java·开发语言·c#
一只大袋鼠9 小时前
Git 进阶(二):分支管理、暂存栈、远程仓库与多人协作
java·开发语言·git