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

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

相关推荐
艾伦~耶格尔39 分钟前
【数据结构进阶】
java·开发语言·数据结构·学习·面试
杜子不疼.41 分钟前
《Python列表和元组:从入门到花式操作指南》
开发语言·python
爪洼传承人1 小时前
18- 网络编程
java·网络编程
smileNicky1 小时前
SpringBoot系列之从繁琐配置到一键启动之旅
java·spring boot·后端
WYH2871 小时前
C#控制台输入(Read()、ReadKey()和ReadLine())
开发语言·c#
祈祷苍天赐我java之术1 小时前
Java 迭代器(Iterator)详解
java·开发语言
秋氘渔2 小时前
综合案例:Python 函数知识整合 — 学生成绩管理系统
开发语言·python
David爱编程2 小时前
为什么必须学并发编程?一文带你看懂从单线程到多线程的演进史
java·后端
我命由我123452 小时前
软件开发 - 避免过多的 if-else 语句(使用策略模式、使用映射表、使用枚举、使用函数式编程)
java·开发语言·javascript·设计模式·java-ee·策略模式·js
long3162 小时前
java 策略模式 demo
java·开发语言·后端·spring·设计模式