String[] s=new String[]{"1","1-1","1-2","2-1","2-2","1-1-1","1-1-1-1"}; Set<String> set = new TreeSet <String>(); for(String i :s) set.add(i); System.out.println(set); 可以利用TreeSet进行排序
问题解决了,用compareTo方法也可以比较,代码如下: public class Strsort { static String[] strArray; static String temp;
java.util.Arrays.sort(s);
for(String str : s)
System.out.println(str);
不过for循环还是加多一个括号比较好点!
然后调用java.util.Collections.sort(Arrays.asList(s));
static String[] strArray;
static String temp;
public static void sort(String[] str) {
for (int i=0; i<str.length; i++){
for(int j=i+1; j<str.length; j++){
if (str[i].length() > str[j].length()){
temp = str[i];
str[i] = str[j];
str[j] = temp;
}
if (str[i].length() == str[j].length()){
if (str[i].length() > str[j].length()){
temp = str[i];
str[i] = str[j];
str[j] = temp;
}
}
}
}
}
public static void main(String args[]){
strArray = new String[]{"1","1-1","1-2","2-1","1-1-1","1-1-1-1"};
sort(strArray);
for(String s : strArray)
System.out.print(s +", ");
}
}结果:
1, 1-1, 1-2, 2-1, 1-1-1, 1-1-1-1,
String s[]={"1","3","2","1-1","1-2","4","3-1","1-1-1","3-1-1","1-2-1-1"};
结果:
1, 3, 2, 4, 1-2, 1-1, 3-1, 1-1-1, 3-1-1, 1-2-1-1,
public class ReSort{
static String[] strArray;
static String temp;
public static void sort(String[] str) {
for (int i=0; i<str.length; i++){
for(int j=i+1; j<str.length; j++){
if (str[i].length() > str[j].length()){
temp = str[i];
str[i] = str[j];
str[j] = temp;
}
if (str[i].length() == str[j].length()){
if (Integer.valueOf(str[i].replaceAll("-","")) > Integer.valueOf(str[j].replaceAll("-",""))){//改了这里
temp = str[i];
str[i] = str[j];
str[j] = temp;
}
}
}
}
}
public static void main(String args[]){
strArray = new String[]{"1","3","2","1-1","1-2","4","3-1","1-1-1","3-1-1","1-2-1-1"};
sort(strArray);
for(String s : strArray)
System.out.print(s +", ");
}
}
Set<String> set = new TreeSet <String>();
for(String i :s)
set.add(i);
System.out.println(set);
可以利用TreeSet进行排序
public class Strsort {
static String[] strArray;
static String temp;
public static void sort(String[] str) {
for (int i=0; i<str.length; i++){
for(int j=i+1; j<str.length; j++){
if (str[i].length() > str[j].length()){
temp = str[i];
str[i] = str[j];
str[j] = temp;
}
if (str[i].length() == str[j].length()){
if(str[i].compareTo(str[j])>0){
temp = str[i];
str[i] = str[j];
str[j] = temp;
}
}
}
}
}
public static void main(String args[]){
strArray = new String[]{"1","3","2","1-1","1-2","4","3-1","1-1-1","3-1-1","1-2-1-1"};
sort(strArray);
for(String s : strArray)
System.out.print(s +", ");
}
}