java将字符串中的数字重新排序,其他的非数字字符不变 比如字符串 "16a52Bc97",排序后为"12a56Bc79",该怎麽实现? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 public static void swap(int i,int j,char[] arr){ char temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } public static void main(String[] args) throws Exception { String str = "16a52Bc97";//排序后为"12a56Bc79" char[] arr = str.toCharArray(); for(int i=0;i<arr.length;i++){ int preChar = arr[i]; if( preChar < '0' || preChar > '9'){ continue; } for(int j=i+1;j<arr.length;j++){ int nextChar = arr[j]; if(nextChar < '0' || nextChar > '9'){ continue; } if(preChar > nextChar){ swap(i,j,arr); } } } System.out.println(new String(arr)); } class StringSort{ public static void main(String[] args) { String str = "31a5B80Z6"; char[] arr = str.toCharArray(); for(int x = 0;x<arr.length-1;x++){ for(int y = x+1;y<arr.length;y++){ if(arr[x]<'0'||arr[x]>'9'){ continue; }else if(arr[y]<'0'||arr[y]>'9'){ continue; }else if(arr[x]>arr[y]){ char temp = arr[x]; arr[x] = arr[y]; arr[y] = temp; } } } System.out.println(new String(arr)); }}跟三楼的思想一样 选择排序,冒泡貌似不行 简化了一下 Graphics 如何防止JAVA的class被解密 java中zlib压缩的问题 生成多个excel文件的程序,如何改成生成一个excel文件里有多个sheet????? 为什么我在命令提示符中运行javac,它说找不到呢?(我是个菜鸟) 急--一个java数据库方面的问题 高分求JBUILDER 8.0序列号!!在线等候 求日期! 菜鸟问题:HelloWorld 也会出 Java子类(B)转父类(A)后,B具有哪些属性? 求解 如下函数执行过程 一个有关静态方法的问题
public static void swap(int i,int j,char[] arr){
char temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
public static void main(String[] args) throws Exception {
String str = "16a52Bc97";//排序后为"12a56Bc79"
char[] arr = str.toCharArray();
for(int i=0;i<arr.length;i++){
int preChar = arr[i];
if( preChar < '0' || preChar > '9'){
continue;
}
for(int j=i+1;j<arr.length;j++){
int nextChar = arr[j];
if(nextChar < '0' || nextChar > '9'){
continue;
}
if(preChar > nextChar){
swap(i,j,arr);
}
}
}
System.out.println(new String(arr));
}
{
public static void main(String[] args)
{
String str = "31a5B80Z6"; char[] arr = str.toCharArray(); for(int x = 0;x<arr.length-1;x++){
for(int y = x+1;y<arr.length;y++){
if(arr[x]<'0'||arr[x]>'9'){
continue;
}else if(arr[y]<'0'||arr[y]>'9'){
continue;
}else if(arr[x]>arr[y]){
char temp = arr[x];
arr[x] = arr[y];
arr[y] = temp;
}
}
}
System.out.println(new String(arr));
}
}
跟三楼的思想一样 选择排序,冒泡貌似不行 简化了一下