zoukankan      html  css  js  c++  java
  • 字符串元音字母反转,其他的不变

    思路:用ArrayList存放元音字母(因为有个contains方法),并记录元音的序号和放进栈里面(反转类似栈先进后出),里面用到string与char数组的转换

    import java.util.ArrayList;
    import java.util.List;
    import java.util.Scanner;
    import java.util.Stack;
    
    public class reverseWords {
       
        public static String reverseVowels(String s) {
            Stack<String> replace=new Stack<String>(); //利用栈先进后出
            List<Character> contain=new ArrayList<Character>(); //存储元音字母
            int count=0; //元音字母个数
            contain.add('a');
            contain.add('e');
            contain.add('i');
            contain.add('o');
            contain.add('u');
            contain.add('A');
            contain.add('E');
            contain.add('I');
            contain.add('O');
            contain.add('U');
            char[] ch=s.toCharArray();
            for(int i=0;i<s.length();i++){
                if(contain.contains(ch[i]))
                    count++;
            }
            if(count<2) return s; //元音小于2个不用反转
            int[] num=new int[count]; //记录元音字母位置
            int j=-1;
            for(int i=0;i<ch.length;i++){
                if(contain.contains(ch[i])){
                    num[++j]=i;
                    replace.push(String.valueOf(ch[i])); //进栈
                }   
            }
            for(int i=0;i<count;i++){
                    ch[num[i]]=replace.pop().charAt(0);
            }
            return String.valueOf(ch);   //char数组转string不可以用toString() 
        }
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            Scanner scanner=new Scanner(System.in);
             while(scanner.hasNext()){
               String str=scanner.next();
               System.out.println(reverseVowels(str));
           }
        }
    }
  • 相关阅读:
    dljd_008_jdbc中调用Statement的execute()执行DQL,DDL,DML
    dljd_007_jdbc编程中的statement执行DML/DDL
    【数据结构】可持久化线段树
    【数据结构】可持久化并查集
    【图论】TarjanLCA算法
    【图论】KruskalMST算法
    【基础】标准模板
    【数学】位运算
    【数据结构】Trie
    【数据结构】线段树(名次树)
  • 原文地址:https://www.cnblogs.com/tk55/p/8463884.html
Copyright © 2011-2022 走看看