CF118A.StringTask(Java实现)
- 软件开发
- 2025-09-17 08:42:01

题目分析
输入一个字符串,遍历每一个字符,如果是元音字母就删除,辅音字母就在其前面增加一个'.',且所有字母输出都是小写。
思路分析
将输入的字符串改为字符数组,考虑到任意位置插入的情况,所以主要选择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);//输出结果 } } }感谢您能够看到这里,一起见证小何同学的算法学习,如果您有不同的见解,希望能得到您的指点和点悟;如果您是和我一样的同学,也希望这篇文章能对您有所帮助。
CF118A.StringTask(Java实现)由讯客互联软件开发栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“CF118A.StringTask(Java实现)”