给定一个只包含字母的字符串,按照先小写字母后大写字母的顺序进行排序。
注意事项
小写字母或者大写字母他们之间不一定要保持在原始字符串中的相对位置。
样例
注意事项
小写字母或者大写字母他们之间不一定要保持在原始字符串中的相对位置。
样例
给出"abAcD",一个可能的答案为"acbAD"
import java.util.Scanner;
/**
* 给定一个只包含字母的字符串,按照先小写字母后大写字母的顺序进行排序。
注意事项
小写字母或者大写字母他们之间不一定要保持在原始字符串中的相对位置。
样例
给出"abAcD",一个可能的答案为"acbAD"
*
* @author Dell
*
*/
public class Test49 {
public static void sortLetters(char[] chars)
{
if(chars.length==0)
return;
int index=find(chars);
if(index!=-1)
{
char temp=chars[index];
chars[index]=chars[0];
chars[0]=temp;
int i=0;
int j=chars.length-1;
while(i<j)
{
while(i<j&&(chars[j]>='A'&&chars[j]<='Z')) j--;
if(i<j)
{
chars[i]=chars[j];
i++;
}
while(i<j&&(chars[i]>='a'&&chars[j]<='z')) i++;
if(i<j)
{
chars[j]=chars[i];
j--;
}
}
chars[i]=temp;
/*for(int k=0;k<chars.length;k++)
{
System.out.print(chars[k]);
}*/
}
}
public static int find(char[] chars)
{ int index=-1;
for(int i=0;i<chars.length;i++)
{
if(chars[i]>='A'&&chars[i]<='Z')
{
index=i;
break;
}
}
return index;
}
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String s=sc.nextLine();
char[] chars=s.toCharArray();
sortLetters(chars);
}
}