import java.util.Arrays; import java.util.Comparator;public class CharArraySort { public static void main(String[] args) { String[] str = {"a","b","B","d","D","K","j","n","N","s"}; Arrays.sort(str,0,str.length,new Comparator<String>() { public int compare(String str1, String str2) { String temp1=str1.toLowerCase(); String temp2=str2.toLowerCase(); if(!temp1.equals(temp2)) return temp1.compareTo(temp2); else return str1.compareTo(str2); } }); for(int i=0;i<str.length;i++) System.out.print(str[i]+" "); } }输出:a B b D d j K N n s
Arrays.sort(strArray, String.CASE_INSENSITIVE_ORDER);
// [a, C, z]
然后排序。。
按照字母顺序排列,并且若同时存在大写字母和小写字母,则大写在前,小写在后。
我测试过Arrays.sort(strArray, String.CASE_INSENSITIVE_ORDER);
无法保证大写在前,小写在后。
求解中....谢谢!!!
import java.util.Comparator;/**
*
* @author Jason
* @version 创建时间:2008-11-7 上午08:54:52
* @contact mailto:[email protected]
*
*/
public class Test { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String[] str = {"a","b","B","d","D","K","j","n","N","s"};
Arrays.sort(str, 0, str.length-1, new Comparator<String>(){ @Override
public int compare(String str1, String str2) {
// TODO Auto-generated method stub
String r1 = str1.toUpperCase();
String r2 = str2.toUpperCase();
if(r1.compareTo(r2)==0){
return str1.compareTo(str2);
}else{
return r1.compareTo(r2);
}
}});
for(String item:str){
System.out.print(item+" ");
}
}}
用最原始的双循环排序法
public static void main(String[] args) {
char[] ch = {'a','b','B','d','D','K','j','n','N','s'};
for(int i=0;i<ch.length;i++){
for(int j=i+1;j<ch.length;j++){
char temp1=ch[i];
char temp2=ch[j];
if(temp1<97) temp1+=32;
if(temp2<97) temp2+=32;
if(temp1>temp2){
char t=ch[j];
ch[j]=ch[i];
ch[i]=t;
}else if(temp1==temp2&&ch[i]>ch[j]){
char t=ch[j];
ch[j]=ch[i];
ch[i]=t;
}
}
}
System.out.println(new String(ch));
}
肯定都会,就是都不想用这么原始的方法吧
import java.util.Arrays;
import java.util.Comparator;public class CharArraySort { public static void main(String[] args) {
String[] str = {"a","b","B","d","D","K","j","n","N","s"};
Arrays.sort(str,0,str.length,new Comparator<String>()
{
public int compare(String str1, String str2) {
String temp1=str1.toLowerCase();
String temp2=str2.toLowerCase();
if(!temp1.equals(temp2))
return temp1.compareTo(temp2);
else
return str1.compareTo(str2);
}
});
for(int i=0;i<str.length;i++)
System.out.print(str[i]+" ");
}
}输出:a B b D d j K N n s
"A", "b", "d", "H", "m", "E" };
// 先按照顺序排列;
Arrays.sort(strArray, String.CASE_INSENSITIVE_ORDER);
//System.out.println("排序后:");
//for (int k = 0; k < strArray.length; k++) {
// System.out.print(strArray[k] + " ");
//}
//System.out.println();
// 若存在大写字母,则交换;
for (int i = 0; i < strArray.length; i++) {
if ((i != strArray.length - 1)
&& (strArray[i].toCharArray()[0] == strArray[i + 1]
.toCharArray()[0] + 32)) {
String str = "";
str = strArray[i];
strArray[i] = strArray[i + 1];
strArray[i + 1] = str;
}
}
System.out.println();
System.out.println("最后排序为:");
for (int k = 0; k < strArray.length; k++) {
System.out.print(strArray[k] + " ");
}
import java.util.Comparator;public class CharArraySort { public static void main(String[] args) {
String[] str = {"a","b","B","d","D","K","j","n","N","s"};
Arrays.sort(str,0,str.length,new Comparator<String>()
{
public int compare(String str1, String str2) {
String temp1=str1.toLowerCase();
String temp2=str2.toLowerCase();
if(!temp1.equals(temp2))
return temp1.compareTo(temp2);
else
return str1.compareTo(str2);
}
});
for(int i=0;i<str.length;i++)
System.out.print(str[i]+" ");
}
}
正确输出
import java.util.Arrays;
import java.util.Comparator;public class CharArraySort { public static void main(String[] args) {
String[] str = {"a","b","B","d","D","K","j","n","N","s"};
Arrays.sort(str,0,str.length,new Comparator<String>()
{
public int compare(String str1, String str2) {
String temp1=str1.toLowerCase();
String temp2=str2.toLowerCase();
if(!temp1.equals(temp2))
return temp1.compareTo(temp2);
else
return str1.compareTo(str2);
}
});
for(int i=0;i<str.length;i++)
System.out.print(str[i]+" ");
}
}
import java.util.Comparator; /**
*
* @author Jason
* @version 创建时间:2008-11-7 上午08:54:52
* @contact mailto:[email protected]
*
*/
public class Test { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String[] str = {"a","b","B","d","D","K","j","n","N","s"};
Arrays.sort(str, 0, str.length-1, new Comparator <String>(){ @Override
public int compare(String str1, String str2) {
// TODO Auto-generated method stub
String r1 = str1.toUpperCase();
String r2 = str2.toUpperCase();
if(r1.compareTo(r2)==0){
return str1.compareTo(str2);
}else{
return r1.compareTo(r2);
}
}});
for(String item:str){
System.out.print(item+" ");
}
} }