字符移位

来源:互联网 发布:卡通人物在线设计软件 编辑:程序博客网 时间:2024/06/06 02:43

题目描述:小Q最近遇到了一个难题:把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,且不能申请额外的空间。
你能帮帮小Q吗?

用冒泡排序的思想,从后往前扫描。

import java.util.Scanner;public class ChrTransfer {    public static String transfer(String s1){        char[] arr=s1.toCharArray();        int j;        for(int i=arr.length-1;i>0;i--){            if(Character.isLowerCase(arr[i])){                j=i;                while (Character.isLowerCase(arr[j])&&j>0) j--;//找到下一个大写字母                if(j==0&&Character.isLowerCase(arr[j])) break;//如果到头了,说明没有大写字母,跳出循环即可                //开始把大写字母移过去                char tmp=arr[j];                for(;j<i;j++){                    arr[j]=arr[j+1];                }                arr[j]=tmp;            }        }        return String.valueOf(arr);    }    public static void main(String[] args) {        Scanner in =new Scanner(System.in);        while (in.hasNext()) {            String s1=in.nextLine();            System.out.println(transfer(s1));        }    }}
0 0
原创粉丝点击