題目分析
? ? ? ? 輸入一個字符串,遍歷每一個字符,如果是元音字母就刪除,輔音字母就在其前面增加一個'.',且所有字母輸出都是小寫。
思路分析
? ? ? ? 將輸入的字符串改為字符數組,考慮到任意位置插入的情況,所以主要選擇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<>();//使用LinkedListArrayList<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++){//遍歷listif (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){//遍歷listSystem.out.print(c);//輸出結果}}
}
????????感謝您能夠看到這里,一起見證小何同學的算法學習,如果您有不同的見解,希望能得到您的指點和點悟;如果您是和我一樣的同學,也希望這篇文章能對您有所幫助。