//: StrSortVector.java
// Automatically sorted Vector that
// accepts and produces only Strings
package c08;
import java.util.*;public class StrSortVector {
private SortVector v = new SortVector(
// Anonymous inner class:
new Compare() {
public boolean
lessThan(Object l, Object r) {
return
((String)l).toLowerCase().compareTo(
((String)r).toLowerCase()) < 0;
}
public boolean
lessThanOrEqual(Object l, Object r) {
return
((String)l).toLowerCase().compareTo(
((String)r).toLowerCase()) <= 0;
}
}
);
private boolean sorted = false;
public void addElement(String s) {
v.addElement(s);
sorted = false;
}
public String elementAt(int index) {
if(!sorted) {
v.sort();
sorted = true;
}
return (String)v.elementAt(index);
}
public Enumeration elements() {
if(!sorted) {
v.sort();
sorted = true;
}
return v.elements();
}
// Test it:
public static void main(String[] args) {
StrSortVector sv = new StrSortVector();
sv.addElement("d"); //这里替换你的排序内容
sv.addElement("A");
sv.addElement("C");
sv.addElement("D");
sv.addElement("a");
Enumeration e = sv.elements();
while(e.hasMoreElements())
System.out.println(e.nextElement());
}
} ///:~
// Automatically sorted Vector that
// accepts and produces only Strings
package c08;
import java.util.*;public class StrSortVector {
private SortVector v = new SortVector(
// Anonymous inner class:
new Compare() {
public boolean
lessThan(Object l, Object r) {
return
((String)l).toLowerCase().compareTo(
((String)r).toLowerCase()) < 0;
}
public boolean
lessThanOrEqual(Object l, Object r) {
return
((String)l).toLowerCase().compareTo(
((String)r).toLowerCase()) <= 0;
}
}
);
private boolean sorted = false;
public void addElement(String s) {
v.addElement(s);
sorted = false;
}
public String elementAt(int index) {
if(!sorted) {
v.sort();
sorted = true;
}
return (String)v.elementAt(index);
}
public Enumeration elements() {
if(!sorted) {
v.sort();
sorted = true;
}
return v.elements();
}
// Test it:
public static void main(String[] args) {
StrSortVector sv = new StrSortVector();
sv.addElement("d"); //这里替换你的排序内容
sv.addElement("A");
sv.addElement("C");
sv.addElement("D");
sv.addElement("a");
Enumeration e = sv.elements();
while(e.hasMoreElements())
System.out.println(e.nextElement());
}
} ///:~
不行。谁可以帮帮我啊
public static void main(String[] args) {
String[] strDir = {
"c:\\windows\\system",
"c:\\windows",
"c:\\windows\\help"};
for (int i=0; i < strDir.length; i++)
{
String value1 = strDir[i];
for (int j=i+1; j < strDir.length; j++)
{
String value2 = strDir[j];
if (value1.compareTo(value2) > 0)
{
strDir[i] = value2;
strDir[j] = value1;
value1 = value2;
}
}
}
for (int i=0; i < strDir.length; i++)
{
System.out.println(strDir[i]);
}
}
} ///:
public static void main(String args[])
throws Exception{
String[] strDir = {
"c:\\windows\\system",
"c:\\windows",
"c:\\windows\\help",
"c:\\temp",
"c:\\mydir\\java",
"c:\\temp\\setup\\key"
};
new Test().compareDir(strDir);
}
/** 目录比较 */
public void compareDir(String[] strDir){
java.util.Arrays.sort(strDir,new DirComparator());
for(int i=0 ; i<strDir.length; i++){
System.out.println(strDir[i]);
}
}
}class DirComparator implements Comparator{
/**
比较
*/
public int compare(Object o1, Object o2){
String str1 = (String)o1;
String str2 = (String)o2;
int level1 = getDirLevelCount(str1);
int level2 = getDirLevelCount(str2);
if(level1!=level2)
return level1-level2;
else
return str1.compareTo(str2);
}
/**
获取目录层次
*/
int getDirLevelCount(String dir){
int count=0;
int beginIndex = 0;
int endIndex = 0;
int strLength = dir.length();
while(endIndex!=-1){
endIndex = dir.indexOf("\\",beginIndex);
if((endIndex!=strLength-1) && (endIndex!=-1)){
count++;
}
beginIndex = endIndex+1;
}
return count;
}
}