zoukankan      html  css  js  c++  java
  • 小写字母置前

    问题:

    有一个由大小写组成的字符串,现在需要对它进行修改,将其中的所有小写字母排在大写字母的前面(大写或小写字母之间不要求保持原来次序)。

    解决办法:

    设置2个指针i和j,i最初指向字符串的第一个位置,j指向字符串的最后一个位置;

    i向后遍历直到遇到第一个大写字符,j向前遍历直到遇到第一个小写字母,交换i和j位置上的字符;

    直到i=j+1,结束;注意交换前需要判断i是否小于j,否则最后的两个字符不正确。

    public String lowerBeforeUpper(String s){
    		int len =s.length();
    		int i=0;
    		int j=len-1;
    		while(i<j){
    			while(i<len&&s.charAt(i)>='a'&&s.charAt(i)<='z'){   //xiaoxie
    				i++;
    			}
    			while(j>=0&&s.charAt(j)>='A'&&s.charAt(j)<='Z'){
    				j--;
    			}
    			if(i<j){
    				s = switchIJ(s,i,j);	
    			}
    		}
    		return s;
    	}
    	
    	private String switchIJ(String s, int i, int j) {
    		// TODO Auto-generated method stub
    		StringBuffer a = new StringBuffer(s);
    		char temp= a.charAt(i);
    		a.setCharAt(i, a.charAt(j));
    		a.setCharAt(j, temp);
    		return a.toString();
    	}
    

      

  • 相关阅读:
    PL/SQL异常处理
    spool命令
    Oracle循环语句
    替换变量&和&&
    OCP-052 & 053部分答案解析
    Oracle IF & CASE语句
    PL/SQL概念
    AIX下如何根据端口号查找相应的进程
    (转)Tomcat启动报Error listenerStart错误
    Suse碎碎念
  • 原文地址:https://www.cnblogs.com/lxq0309/p/3719048.html
Copyright © 2011-2022 走看看