在一个字符串中把大写字母放到字符串中小写字母的后面(不能改变字母的相对位置)
设置两个下标p1、p2
同时指向字符串的末尾,让p1找到第一次出现为大写的字母的位置,然后从p1至p2两两交换,之后让p1--,p2--,重复以上,直到p1小于0为止
public void swapCharacter(char[] ch){
if(null==ch||0==ch.length)return;
int p1 =ch.length-1;
int p2 =ch.length-1;
while(p1>=0){
while(p1>=0&&ch[p1]>="a"&&ch[p1]<="z"){
p1--;
}
int index = p1;
while(index>=0&&index!=p2){
char t = ch[index];
ch[index] = ch[index+1];
ch[index+1] = t;
index++;
}
p2--;
p1--;
}
}声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
