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));
           }
        }
    }
  • 相关阅读:
    快速排序?
    算法和数据结构?
    渲染一个react?
    移动端兼容适配?
    PWA全称Progressive Web App,即渐进式WEB应用?
    InnoDB一棵B+树可以存放多少行数据?
    移动端首屏优化?
    InnoDB什么时候会锁表?
    数组去重,多种方法?
    如何处理异形屏iphone X?
  • 原文地址:https://www.cnblogs.com/tk55/p/8463884.html
Copyright © 2011-2022 走看看