A2,
O3,
WW,
Z3
...
请问高手这个功能该如何实现?小弟在线等!谢谢!
36 个解决方案
#1
File d = new File("你的文件夹路径");
String[] fileNames = d.list();
// 自己写个内部类,然后重写 compare, :
class MyComparator implements Comparator {
public int compare(Object obj1, Object obj2) {
Collections.sort(fileNames , new MyComparator());
for (int i=0; i < fileNames.length ; i++) {
File read = new File(fileNames[i]);
String[] fileNames = d.list();
// 自己写个内部类,然后重写 compare, :
class MyComparator implements Comparator {
public int compare(Object obj1, Object obj2) {
Collections.sort(fileNames , new MyComparator());
for (int i=0; i < fileNames.length ; i++) {
File read = new File(fileNames[i]);
#2
to lianhg(lianhg):
你程序是不是没写完啊?Object obj1和Object obj2要进行比较吧?File read ,这个read对象要进行什么操作呢??能不能写清楚呢,谢谢拉!
你程序是不是没写完啊?Object obj1和Object obj2要进行比较吧?File read ,这个read对象要进行什么操作呢??能不能写清楚呢,谢谢拉!
#3
File d = new File("你的文件夹路径");
String[] fileNames = d.list();
// 自己写个内部类,然后重写 compare, :
class MyComparator implements Comparator {
public int compare(Object obj1, Object obj2) {
String name1 = (String) obj1;
String name2 = (String) obj2;
int i = 0;
i = name1.compareTo(name2);
return i;
}
}
Collections.sort(fileNames , new MyComparator());
for (int i=0; i < fileNames.length ; i++) {
System.out.println(fileNames[i]);
}
String[] fileNames = d.list();
// 自己写个内部类,然后重写 compare, :
class MyComparator implements Comparator {
public int compare(Object obj1, Object obj2) {
String name1 = (String) obj1;
String name2 = (String) obj2;
int i = 0;
i = name1.compareTo(name2);
return i;
}
}
Collections.sort(fileNames , new MyComparator());
for (int i=0; i < fileNames.length ; i++) {
System.out.println(fileNames[i]);
}
#4
lianhg(lianhg) 大哥:
Collections.sort(fileNames , new MyComparator());不能这样写吧,我做的测试程序是报错的啊!!!你可以试试!
package com.manual;
import java.io.*;
import java.util.*;
//自己写个内部类,然后重写 compare, :
class MyComparator implements Comparator {
public int compare(Object obj1, Object obj2) {
String name1 = (String) obj1;
String name2 = (String) obj2;
int i = 0;
i = name1.compareTo(name2);
return i;
}
}
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
File d = new File("Data/");
String[] fileNames = d.list();
Collections.sort(fileNames , new MyComparator());
//Arrays.sort(fileNames , new MyComparator());
for (int i=0; i < fileNames.length ; i++) {
System.out.println(fileNames[i]);
}
}
}
下面这行报错的!
Collections.sort(fileNames , new MyComparator());
还有你的compare方法就能将字母从A---Z排序吗??
Collections.sort(fileNames , new MyComparator());不能这样写吧,我做的测试程序是报错的啊!!!你可以试试!
package com.manual;
import java.io.*;
import java.util.*;
//自己写个内部类,然后重写 compare, :
class MyComparator implements Comparator {
public int compare(Object obj1, Object obj2) {
String name1 = (String) obj1;
String name2 = (String) obj2;
int i = 0;
i = name1.compareTo(name2);
return i;
}
}
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
File d = new File("Data/");
String[] fileNames = d.list();
Collections.sort(fileNames , new MyComparator());
//Arrays.sort(fileNames , new MyComparator());
for (int i=0; i < fileNames.length ; i++) {
System.out.println(fileNames[i]);
}
}
}
下面这行报错的!
Collections.sort(fileNames , new MyComparator());
还有你的compare方法就能将字母从A---Z排序吗??
#5
File d = new File("D:\\temp\\A");
String[] fileNames = d.list();
Arrays.sort(fileNames);
for (int i=0; i < fileNames.length ; i++) {
System.out.println(fileNames[i]);
}
String[] fileNames = d.list();
Arrays.sort(fileNames);
for (int i=0; i < fileNames.length ; i++) {
System.out.println(fileNames[i]);
}
#6
你注释的代码 //Arrays.sort(fileNames 就是正确的。
#7
/********************/
/*@author guaxixi627*/
/********************/
import java.io.*;
import java.util.*;
class FileTest
{
public static void main(String[] args)
{
File f=new File(filepath);
String names[]=f.list();
Arrays.sort(names,new Comparator()//利用内部类进行排序
{
public int compare(Object o1,Object o2)
{
String s1 = (String)o1;
String s2 = (String)o2;
return s1.toLowerCase().compareTo(s2.toLowerCase());
}
});
for(int i=0;i<names.length;i++)
System.out.println(names[i]);
}
}
/*@author guaxixi627*/
/********************/
import java.io.*;
import java.util.*;
class FileTest
{
public static void main(String[] args)
{
File f=new File(filepath);
String names[]=f.list();
Arrays.sort(names,new Comparator()//利用内部类进行排序
{
public int compare(Object o1,Object o2)
{
String s1 = (String)o1;
String s2 = (String)o2;
return s1.toLowerCase().compareTo(s2.toLowerCase());
}
});
for(int i=0;i<names.length;i++)
System.out.println(names[i]);
}
}
#8
to lianhg(lianhg) :
你上面怎么没用new MyComparator()???要不然你怎样从A到Z排序啊????
应该是这样吧:Arrays.sort(fileNames,new MyComparator());可是我这样写还是报错的!你最好测一下程序,好吗?谢谢拉!
你上面怎么没用new MyComparator()???要不然你怎样从A到Z排序啊????
应该是这样吧:Arrays.sort(fileNames,new MyComparator());可是我这样写还是报错的!你最好测一下程序,好吗?谢谢拉!
#9
/********************/
/*@author guaxixi627*/
/********************/
import java.io.*;
import java.util.*;
class FileTest
{
public static void main(String[] args)
{
File f=new File("filepath");
String names[]=f.list();
Arrays.sort(names,new Comparator()//利用内部类进行排序
{
public int compare(Object o1,Object o2)
{
String s1 = (String)o1;
String s2 = (String)o2;
return s1.toLowerCase().compareTo (s2.toLowerCase());
}
});
for(int i=0;i<names.length;i++)
System.out.println(names[i]);
}
}
/*@author guaxixi627*/
/********************/
import java.io.*;
import java.util.*;
class FileTest
{
public static void main(String[] args)
{
File f=new File("filepath");
String names[]=f.list();
Arrays.sort(names,new Comparator()//利用内部类进行排序
{
public int compare(Object o1,Object o2)
{
String s1 = (String)o1;
String s2 = (String)o2;
return s1.toLowerCase().compareTo (s2.toLowerCase());
}
});
for(int i=0;i<names.length;i++)
System.out.println(names[i]);
}
}
#10
因为使用了 jdk1.5 缘故,1.4 不出错。以下是对应 1.5 的代码
File d = new File("D:\\temp\\A");
String[] fileNames = d.list();
Arrays.sort(fileNames, new Comparator<String>() {
public int compare(String str1, String str2) {
int i = 0;
i = str1.compareTo(str2);
return i;
}
}
);
for (int i=0; i < fileNames.length ; i++) {
System.out.println(fileNames[i]);
}
File d = new File("D:\\temp\\A");
String[] fileNames = d.list();
Arrays.sort(fileNames, new Comparator<String>() {
public int compare(String str1, String str2) {
int i = 0;
i = str1.compareTo(str2);
return i;
}
}
);
for (int i=0; i < fileNames.length ; i++) {
System.out.println(fileNames[i]);
}
#11
to lianhg(lianhg),guaxixi627() :
我对相对路径的问题一直很疑惑!
1)eclipse中的相对路径应该和.class文件一个级别吧还是和.java文件一个级别?假如我这一行File f=new File("filepath");的filepath想换成Data\,
File f = new File("Data\");我这个Data目录应该放在我源文件的包com.manual下和我这个程序同一级还是应该放在我编译后的这个程序.class文件的同一级??以前我问其它人都说放.class一级,可是我试验放源文件一级是正确的?到底是怎么回事??
2)我在com.manual包下创建一个文件夹Data,为什么创建好的文件夹图标是包的图标,不是文件夹图标呢???而且创建的文件夹的名字怎么不叫Data,eclipse里怎么叫com.manual.Data,我明明创建的是文件夹怎么出来是包??
我对相对路径的问题一直很疑惑!
1)eclipse中的相对路径应该和.class文件一个级别吧还是和.java文件一个级别?假如我这一行File f=new File("filepath");的filepath想换成Data\,
File f = new File("Data\");我这个Data目录应该放在我源文件的包com.manual下和我这个程序同一级还是应该放在我编译后的这个程序.class文件的同一级??以前我问其它人都说放.class一级,可是我试验放源文件一级是正确的?到底是怎么回事??
2)我在com.manual包下创建一个文件夹Data,为什么创建好的文件夹图标是包的图标,不是文件夹图标呢???而且创建的文件夹的名字怎么不叫Data,eclipse里怎么叫com.manual.Data,我明明创建的是文件夹怎么出来是包??
#12
File f = new File("Data\\") 这句中 Data文件夹的路径为: 盘符名:/项目名/Data ,如果你想要对某个包下面的文件排序,就应该改成File f = new File("com\\manual\\Data")
不知道我这样回答是否解决了你所要问的。
不知道我这样回答是否解决了你所要问的。
#13
1) String path = System.getProperty("user.dir");
System.out.println("path :" +path); // 当前 class 的绝对路径
2)包的路径就是文件夹
System.out.println("path :" +path); // 当前 class 的绝对路径
2)包的路径就是文件夹
#14
to lianhg(lianhg) :
你上面怎么没用new MyComparator()???要不然你怎样从A到Z排序啊????
应该是这样吧:Arrays.sort(fileNames,new MyComparator());可是我这样写还是报错的!你最好测一下程序,好吗?谢谢拉
// 报错原因如下,你没有初始化 Test
import java.io.*;
import java.util.*;
class FileTest
{
public static void main(String[] args)
{
Test t = new Test();
t.f();
}
void f() {
File f=new File(filepath);
String names[]=f.list();
Arrays.sort(names,new Comparator()//利用内部类进行排序
{
public int compare(Object o1,Object o2)
{
String s1 = (String)o1;
String s2 = (String)o2;
return s1.toLowerCase().compareTo(s2.toLowerCase());
}
});
for(int i=0;i<names.length;i++)
System.out.println(names[i]);
}
}
你上面怎么没用new MyComparator()???要不然你怎样从A到Z排序啊????
应该是这样吧:Arrays.sort(fileNames,new MyComparator());可是我这样写还是报错的!你最好测一下程序,好吗?谢谢拉
// 报错原因如下,你没有初始化 Test
import java.io.*;
import java.util.*;
class FileTest
{
public static void main(String[] args)
{
Test t = new Test();
t.f();
}
void f() {
File f=new File(filepath);
String names[]=f.list();
Arrays.sort(names,new Comparator()//利用内部类进行排序
{
public int compare(Object o1,Object o2)
{
String s1 = (String)o1;
String s2 = (String)o2;
return s1.toLowerCase().compareTo(s2.toLowerCase());
}
});
for(int i=0;i<names.length;i++)
System.out.println(names[i]);
}
}
#15
to guaxixi627(),lianhg(lianhg) :
我的意思是说用相对路径!这句话File f = new File("Data\\");这个Data目录我应该放在项目中的什么位置??是相对与谁的目录???
我的意思是说用相对路径!这句话File f = new File("Data\\");这个Data目录我应该放在项目中的什么位置??是相对与谁的目录???
#16
to guaxixi627() :
我按照你的说法根本不行的!
我是在我com.manual包下建立了Data文件夹,然后把程序改为:
package com.manual;
import java.io.*;
import java.util.*;
class NewTest
{
public static void main(String[] args)
{
File f=new File("com\\manual\\Data");
String names[]=f.list();
// 利用内部类进行排序
Arrays.sort(names,new Comparator(){
public int compare(Object o1,Object o2)
{
String s1 = (String)o1;
String s2 = (String)o2;
return s1.toLowerCase().compareTo(s2.toLowerCase());
}
});
for(int i=0;i<names.length;i++)
System.out.println(names[i]);
}
}
程序报错:
Exception in thread "main" java.lang.NullPointerException
at java.util.Arrays.sort(Unknown Source)
at com.manual.NewTest.main(NewTest.java:15)
我按照你的说法根本不行的!
我是在我com.manual包下建立了Data文件夹,然后把程序改为:
package com.manual;
import java.io.*;
import java.util.*;
class NewTest
{
public static void main(String[] args)
{
File f=new File("com\\manual\\Data");
String names[]=f.list();
// 利用内部类进行排序
Arrays.sort(names,new Comparator(){
public int compare(Object o1,Object o2)
{
String s1 = (String)o1;
String s2 = (String)o2;
return s1.toLowerCase().compareTo(s2.toLowerCase());
}
});
for(int i=0;i<names.length;i++)
System.out.println(names[i]);
}
}
程序报错:
Exception in thread "main" java.lang.NullPointerException
at java.util.Arrays.sort(Unknown Source)
at com.manual.NewTest.main(NewTest.java:15)
#17
to guaxixi627(),lianhg(lianhg) :
我的意思是说用相对路径!这句话File f = new File("Data\\");这个Data目录我应该放在项目中的什么位置??是相对与谁的目录???
Data目录放到项目中的任意位置都可以。根据下面获得的路径,来确定 Data目录 的位置
1) String path = System.getProperty("user.dir");
System.out.println("path :" +path); // 当前 class 的绝对路径
我的意思是说用相对路径!这句话File f = new File("Data\\");这个Data目录我应该放在项目中的什么位置??是相对与谁的目录???
Data目录放到项目中的任意位置都可以。根据下面获得的路径,来确定 Data目录 的位置
1) String path = System.getProperty("user.dir");
System.out.println("path :" +path); // 当前 class 的绝对路径
#18
lianhg(lianhg) :
String path = System.getProperty("user.dir");这里的user.dir是指哪个目录呢?
我在com.manual包下建立Data文件夹,这个Data目录的相对路径该怎样写???
String path = System.getProperty("user.dir");这里的user.dir是指哪个目录呢?
我在com.manual包下建立Data文件夹,这个Data目录的相对路径该怎样写???
#19
lianhg(lianhg) :
String path = System.getProperty("user.dir");这里的user.dir是指哪个目录呢?
-- 这是取得绝对路径。然后,截取字符串取得项目的路径。“项目的路径”\DATA
就是你需要的路径。
把下面的代码添加到你的程序中, 你就明白啦
String path = System.getProperty("user.dir");
System.out.println("path :" +path);
String path = System.getProperty("user.dir");这里的user.dir是指哪个目录呢?
-- 这是取得绝对路径。然后,截取字符串取得项目的路径。“项目的路径”\DATA
就是你需要的路径。
把下面的代码添加到你的程序中, 你就明白啦
String path = System.getProperty("user.dir");
System.out.println("path :" +path);
#20
lianhg(lianhg):我把你说的那两行加里面了,输出如下:
path :E:\eclipse\eclipse\workspace\ManualBrowser
ManualBrowser是我eclipse建立的工程名啊!我Data目录在我ManualBrowser\j2src\com.manual包下面啊!我这句话要改成:File f = new File(path+"\j2src\com.manual");是这样吗?
你这样是取绝对路径啊!!可以不可以直接用相对路径表示???
path :E:\eclipse\eclipse\workspace\ManualBrowser
ManualBrowser是我eclipse建立的工程名啊!我Data目录在我ManualBrowser\j2src\com.manual包下面啊!我这句话要改成:File f = new File(path+"\j2src\com.manual");是这样吗?
你这样是取绝对路径啊!!可以不可以直接用相对路径表示???
#21
是 File f=new File(path+"j2src\\com\\manual\\Data");吗?\
我这样写程序报错啊!
path :E:\eclipse\eclipse\workspace\ManualBrowser
Exception in thread "main" java.lang.NullPointerException
at java.util.Arrays.sort(Unknown Source)
at com.manual.NewTest.main(NewTest.java:17)
我这样写程序报错啊!
path :E:\eclipse\eclipse\workspace\ManualBrowser
Exception in thread "main" java.lang.NullPointerException
at java.util.Arrays.sort(Unknown Source)
at com.manual.NewTest.main(NewTest.java:17)
#22
File f=new File(path+"j2src\\com\\manual\\Data");
--> File f=new File(path+"\j2src\\com\\manual\\Data");
--> File f=new File(path+"\j2src\\com\\manual\\Data");
#23
不过,建议你 DATA 目录 应放到 ManualBrowser 下,不要和代码放置到一起。否则,打包时,易发生路径不正确。
应放到 ManualBrowser 下,就是 path + "/DATA",简单明了/
应放到 ManualBrowser 下,就是 path + "/DATA",简单明了/
#24
lianhg(lianhg):
我把这段代码用在jsp页面中
为什么程序输出:path :C:\Program Files\Apache Software Foundation\Tomcat 5.0\bin
怎么会是Tomcat的路径?
String path = System.getProperty("user.dir");
System.out.println("path :" +path);
是不是只能用于java应用程序中,不能用于jsp页面呢?
我把这段代码用在jsp页面中
为什么程序输出:path :C:\Program Files\Apache Software Foundation\Tomcat 5.0\bin
怎么会是Tomcat的路径?
String path = System.getProperty("user.dir");
System.out.println("path :" +path);
是不是只能用于java应用程序中,不能用于jsp页面呢?
#25
jsp页面中取得项目的路径的方法是 request.getContextPath()
#26
lianhg(lianhg):
request.getContextPath()是取的WEB项目的路径,如果我Data在WEB项目下,路径就应该是"
request.getContextPath()+"/Data"对吧,我做的测试request.getContextPath()结果是/Browser,这是个相对路径,对吧?
application.getRealPath("Data\\");我测试出来是绝对路径E:\eclipse\eclipse\workspace\ManualBrowser\Browser\Data,也就是说这两种方法都可以用!
如果用request.getContextPath()的话,路径要写为request.getContextPath()+"/Data";
如果用application.getRealPath("Data\\");直接就得到了绝对路径.
是不是这样的呢?谢谢!
#27
是的都可以
#28
lianhg(lianhg):
程序中
for(int i=0;i<names.length;i++)
System.out.println(names[i]);
为什么for()后不加{}呢??
for(int i=0;i<names.length;i++){
System.out.println(names[i]);
}
这两个有啥区别啊??
程序中
for(int i=0;i<names.length;i++)
System.out.println(names[i]);
为什么for()后不加{}呢??
for(int i=0;i<names.length;i++){
System.out.println(names[i]);
}
这两个有啥区别啊??
#29
没有区别。
for(int i=0;i<names.length;i++) 如果循环中只有一条语句,就可以不用加 {},默认执行
这个语句。
for(int i=0;i<names.length;i++) 如果循环中只有一条语句,就可以不用加 {},默认执行
这个语句。
#30
总觉得不加{}的习惯不好啊!还有你看我写的代码,不知道eclipse为什么有黄色的感叹号!
package com.manual;
import java.io.*;
import java.util.*;
class NewTest
{
public static void main(String[] args)
{
//File f=new File("com\\manual\\Data");
String path = System.getProperty("user.dir");
System.out.println("path :" +path);
File f=new File(path+"\\j2src\\com\\manual\\Data");
String names[]=f.list();
// 利用内部类进行排序
Arrays.sort(names,new Comparator(){
public int compare(Object o1,Object o2)
{
String s1 = (String)o1;
String s2 = (String)o2;
return s1.toLowerCase().compareTo(s2.toLowerCase());
}
});
for(int i=0;i<names.length;i++){
System.out.println(names[i]);
}
}
}
这段程序是黄色感叹!说Type safty:expressiong of type new Comparator() need unchecked
conversion to confirm to Comparator<? super T>
Arrays.sort(names,new Comparator(){
public int compare(Object o1,Object o2)
{
String s1 = (String)o1;
String s2 = (String)o2;
return s1.toLowerCase().compareTo(s2.toLowerCase());
}
});
package com.manual;
import java.io.*;
import java.util.*;
class NewTest
{
public static void main(String[] args)
{
//File f=new File("com\\manual\\Data");
String path = System.getProperty("user.dir");
System.out.println("path :" +path);
File f=new File(path+"\\j2src\\com\\manual\\Data");
String names[]=f.list();
// 利用内部类进行排序
Arrays.sort(names,new Comparator(){
public int compare(Object o1,Object o2)
{
String s1 = (String)o1;
String s2 = (String)o2;
return s1.toLowerCase().compareTo(s2.toLowerCase());
}
});
for(int i=0;i<names.length;i++){
System.out.println(names[i]);
}
}
}
这段程序是黄色感叹!说Type safty:expressiong of type new Comparator() need unchecked
conversion to confirm to Comparator<? super T>
Arrays.sort(names,new Comparator(){
public int compare(Object o1,Object o2)
{
String s1 = (String)o1;
String s2 = (String)o2;
return s1.toLowerCase().compareTo(s2.toLowerCase());
}
});
#31
import java.io.*;
import java.util.*;
class NewTest {
public static void main(String[] args) {
// File f=new File("com\\manual\\Data");
String path = System.getProperty("user.dir");
System.out.println("path :" + path);
File f = new File(path + "\\j2src\\com\\manual\\Data");
String names[] = f.list();
// 利用内部类进行排序
Arrays.sort(names, new Comparator<String>() {
public int compare(String o1, String o2) {
//String s1 = (String) o1;
//String s2 = (String) o2;
return o1.toLowerCase().compareTo(o2.toLowerCase());
}
});
for (int i = 0; i < names.length; i++) {
System.out.println(names[i]);
}
}
}
import java.util.*;
class NewTest {
public static void main(String[] args) {
// File f=new File("com\\manual\\Data");
String path = System.getProperty("user.dir");
System.out.println("path :" + path);
File f = new File(path + "\\j2src\\com\\manual\\Data");
String names[] = f.list();
// 利用内部类进行排序
Arrays.sort(names, new Comparator<String>() {
public int compare(String o1, String o2) {
//String s1 = (String) o1;
//String s2 = (String) o2;
return o1.toLowerCase().compareTo(o2.toLowerCase());
}
});
for (int i = 0; i < names.length; i++) {
System.out.println(names[i]);
}
}
}
#32
new Comparator<String>后面为什么要加<String>???JDK1.5必须这样吗??
#33
是 1.5 泛型
#34
用treemap吧,自动给你排号序了,不用那么麻烦
#35
import java.io.File;
import java.util.Collection;
import java.util.Iterator;
import java.util.TreeMap;
public class TestOrder {
/**
* @param args
*/
public static void main(String[] args)
{
String path = System.getProperty("user.dir");
System.out.println("path :" + path);
File f = new File(path);
String names[] = f.list();
TreeMap tm=new TreeMap();
for (int i = 0; i < names.length; i++)
{
//System.out.println(names[i]);
tm.put(names[i],names[i]);
}
Collection col = tm.keySet();
Iterator it = col.iterator();
while(it.hasNext())
{
System.out.println(it.next());
}
}
}
import java.util.Collection;
import java.util.Iterator;
import java.util.TreeMap;
public class TestOrder {
/**
* @param args
*/
public static void main(String[] args)
{
String path = System.getProperty("user.dir");
System.out.println("path :" + path);
File f = new File(path);
String names[] = f.list();
TreeMap tm=new TreeMap();
for (int i = 0; i < names.length; i++)
{
//System.out.println(names[i]);
tm.put(names[i],names[i]);
}
Collection col = tm.keySet();
Iterator it = col.iterator();
while(it.hasNext())
{
System.out.println(it.next());
}
}
}
#36
支持中文排序的!
#1
File d = new File("你的文件夹路径");
String[] fileNames = d.list();
// 自己写个内部类,然后重写 compare, :
class MyComparator implements Comparator {
public int compare(Object obj1, Object obj2) {
Collections.sort(fileNames , new MyComparator());
for (int i=0; i < fileNames.length ; i++) {
File read = new File(fileNames[i]);
String[] fileNames = d.list();
// 自己写个内部类,然后重写 compare, :
class MyComparator implements Comparator {
public int compare(Object obj1, Object obj2) {
Collections.sort(fileNames , new MyComparator());
for (int i=0; i < fileNames.length ; i++) {
File read = new File(fileNames[i]);
#2
to lianhg(lianhg):
你程序是不是没写完啊?Object obj1和Object obj2要进行比较吧?File read ,这个read对象要进行什么操作呢??能不能写清楚呢,谢谢拉!
你程序是不是没写完啊?Object obj1和Object obj2要进行比较吧?File read ,这个read对象要进行什么操作呢??能不能写清楚呢,谢谢拉!
#3
File d = new File("你的文件夹路径");
String[] fileNames = d.list();
// 自己写个内部类,然后重写 compare, :
class MyComparator implements Comparator {
public int compare(Object obj1, Object obj2) {
String name1 = (String) obj1;
String name2 = (String) obj2;
int i = 0;
i = name1.compareTo(name2);
return i;
}
}
Collections.sort(fileNames , new MyComparator());
for (int i=0; i < fileNames.length ; i++) {
System.out.println(fileNames[i]);
}
String[] fileNames = d.list();
// 自己写个内部类,然后重写 compare, :
class MyComparator implements Comparator {
public int compare(Object obj1, Object obj2) {
String name1 = (String) obj1;
String name2 = (String) obj2;
int i = 0;
i = name1.compareTo(name2);
return i;
}
}
Collections.sort(fileNames , new MyComparator());
for (int i=0; i < fileNames.length ; i++) {
System.out.println(fileNames[i]);
}
#4
lianhg(lianhg) 大哥:
Collections.sort(fileNames , new MyComparator());不能这样写吧,我做的测试程序是报错的啊!!!你可以试试!
package com.manual;
import java.io.*;
import java.util.*;
//自己写个内部类,然后重写 compare, :
class MyComparator implements Comparator {
public int compare(Object obj1, Object obj2) {
String name1 = (String) obj1;
String name2 = (String) obj2;
int i = 0;
i = name1.compareTo(name2);
return i;
}
}
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
File d = new File("Data/");
String[] fileNames = d.list();
Collections.sort(fileNames , new MyComparator());
//Arrays.sort(fileNames , new MyComparator());
for (int i=0; i < fileNames.length ; i++) {
System.out.println(fileNames[i]);
}
}
}
下面这行报错的!
Collections.sort(fileNames , new MyComparator());
还有你的compare方法就能将字母从A---Z排序吗??
Collections.sort(fileNames , new MyComparator());不能这样写吧,我做的测试程序是报错的啊!!!你可以试试!
package com.manual;
import java.io.*;
import java.util.*;
//自己写个内部类,然后重写 compare, :
class MyComparator implements Comparator {
public int compare(Object obj1, Object obj2) {
String name1 = (String) obj1;
String name2 = (String) obj2;
int i = 0;
i = name1.compareTo(name2);
return i;
}
}
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
File d = new File("Data/");
String[] fileNames = d.list();
Collections.sort(fileNames , new MyComparator());
//Arrays.sort(fileNames , new MyComparator());
for (int i=0; i < fileNames.length ; i++) {
System.out.println(fileNames[i]);
}
}
}
下面这行报错的!
Collections.sort(fileNames , new MyComparator());
还有你的compare方法就能将字母从A---Z排序吗??
#5
File d = new File("D:\\temp\\A");
String[] fileNames = d.list();
Arrays.sort(fileNames);
for (int i=0; i < fileNames.length ; i++) {
System.out.println(fileNames[i]);
}
String[] fileNames = d.list();
Arrays.sort(fileNames);
for (int i=0; i < fileNames.length ; i++) {
System.out.println(fileNames[i]);
}
#6
你注释的代码 //Arrays.sort(fileNames 就是正确的。
#7
/********************/
/*@author guaxixi627*/
/********************/
import java.io.*;
import java.util.*;
class FileTest
{
public static void main(String[] args)
{
File f=new File(filepath);
String names[]=f.list();
Arrays.sort(names,new Comparator()//利用内部类进行排序
{
public int compare(Object o1,Object o2)
{
String s1 = (String)o1;
String s2 = (String)o2;
return s1.toLowerCase().compareTo(s2.toLowerCase());
}
});
for(int i=0;i<names.length;i++)
System.out.println(names[i]);
}
}
/*@author guaxixi627*/
/********************/
import java.io.*;
import java.util.*;
class FileTest
{
public static void main(String[] args)
{
File f=new File(filepath);
String names[]=f.list();
Arrays.sort(names,new Comparator()//利用内部类进行排序
{
public int compare(Object o1,Object o2)
{
String s1 = (String)o1;
String s2 = (String)o2;
return s1.toLowerCase().compareTo(s2.toLowerCase());
}
});
for(int i=0;i<names.length;i++)
System.out.println(names[i]);
}
}
#8
to lianhg(lianhg) :
你上面怎么没用new MyComparator()???要不然你怎样从A到Z排序啊????
应该是这样吧:Arrays.sort(fileNames,new MyComparator());可是我这样写还是报错的!你最好测一下程序,好吗?谢谢拉!
你上面怎么没用new MyComparator()???要不然你怎样从A到Z排序啊????
应该是这样吧:Arrays.sort(fileNames,new MyComparator());可是我这样写还是报错的!你最好测一下程序,好吗?谢谢拉!
#9
/********************/
/*@author guaxixi627*/
/********************/
import java.io.*;
import java.util.*;
class FileTest
{
public static void main(String[] args)
{
File f=new File("filepath");
String names[]=f.list();
Arrays.sort(names,new Comparator()//利用内部类进行排序
{
public int compare(Object o1,Object o2)
{
String s1 = (String)o1;
String s2 = (String)o2;
return s1.toLowerCase().compareTo (s2.toLowerCase());
}
});
for(int i=0;i<names.length;i++)
System.out.println(names[i]);
}
}
/*@author guaxixi627*/
/********************/
import java.io.*;
import java.util.*;
class FileTest
{
public static void main(String[] args)
{
File f=new File("filepath");
String names[]=f.list();
Arrays.sort(names,new Comparator()//利用内部类进行排序
{
public int compare(Object o1,Object o2)
{
String s1 = (String)o1;
String s2 = (String)o2;
return s1.toLowerCase().compareTo (s2.toLowerCase());
}
});
for(int i=0;i<names.length;i++)
System.out.println(names[i]);
}
}
#10
因为使用了 jdk1.5 缘故,1.4 不出错。以下是对应 1.5 的代码
File d = new File("D:\\temp\\A");
String[] fileNames = d.list();
Arrays.sort(fileNames, new Comparator<String>() {
public int compare(String str1, String str2) {
int i = 0;
i = str1.compareTo(str2);
return i;
}
}
);
for (int i=0; i < fileNames.length ; i++) {
System.out.println(fileNames[i]);
}
File d = new File("D:\\temp\\A");
String[] fileNames = d.list();
Arrays.sort(fileNames, new Comparator<String>() {
public int compare(String str1, String str2) {
int i = 0;
i = str1.compareTo(str2);
return i;
}
}
);
for (int i=0; i < fileNames.length ; i++) {
System.out.println(fileNames[i]);
}
#11
to lianhg(lianhg),guaxixi627() :
我对相对路径的问题一直很疑惑!
1)eclipse中的相对路径应该和.class文件一个级别吧还是和.java文件一个级别?假如我这一行File f=new File("filepath");的filepath想换成Data\,
File f = new File("Data\");我这个Data目录应该放在我源文件的包com.manual下和我这个程序同一级还是应该放在我编译后的这个程序.class文件的同一级??以前我问其它人都说放.class一级,可是我试验放源文件一级是正确的?到底是怎么回事??
2)我在com.manual包下创建一个文件夹Data,为什么创建好的文件夹图标是包的图标,不是文件夹图标呢???而且创建的文件夹的名字怎么不叫Data,eclipse里怎么叫com.manual.Data,我明明创建的是文件夹怎么出来是包??
我对相对路径的问题一直很疑惑!
1)eclipse中的相对路径应该和.class文件一个级别吧还是和.java文件一个级别?假如我这一行File f=new File("filepath");的filepath想换成Data\,
File f = new File("Data\");我这个Data目录应该放在我源文件的包com.manual下和我这个程序同一级还是应该放在我编译后的这个程序.class文件的同一级??以前我问其它人都说放.class一级,可是我试验放源文件一级是正确的?到底是怎么回事??
2)我在com.manual包下创建一个文件夹Data,为什么创建好的文件夹图标是包的图标,不是文件夹图标呢???而且创建的文件夹的名字怎么不叫Data,eclipse里怎么叫com.manual.Data,我明明创建的是文件夹怎么出来是包??
#12
File f = new File("Data\\") 这句中 Data文件夹的路径为: 盘符名:/项目名/Data ,如果你想要对某个包下面的文件排序,就应该改成File f = new File("com\\manual\\Data")
不知道我这样回答是否解决了你所要问的。
不知道我这样回答是否解决了你所要问的。
#13
1) String path = System.getProperty("user.dir");
System.out.println("path :" +path); // 当前 class 的绝对路径
2)包的路径就是文件夹
System.out.println("path :" +path); // 当前 class 的绝对路径
2)包的路径就是文件夹
#14
to lianhg(lianhg) :
你上面怎么没用new MyComparator()???要不然你怎样从A到Z排序啊????
应该是这样吧:Arrays.sort(fileNames,new MyComparator());可是我这样写还是报错的!你最好测一下程序,好吗?谢谢拉
// 报错原因如下,你没有初始化 Test
import java.io.*;
import java.util.*;
class FileTest
{
public static void main(String[] args)
{
Test t = new Test();
t.f();
}
void f() {
File f=new File(filepath);
String names[]=f.list();
Arrays.sort(names,new Comparator()//利用内部类进行排序
{
public int compare(Object o1,Object o2)
{
String s1 = (String)o1;
String s2 = (String)o2;
return s1.toLowerCase().compareTo(s2.toLowerCase());
}
});
for(int i=0;i<names.length;i++)
System.out.println(names[i]);
}
}
你上面怎么没用new MyComparator()???要不然你怎样从A到Z排序啊????
应该是这样吧:Arrays.sort(fileNames,new MyComparator());可是我这样写还是报错的!你最好测一下程序,好吗?谢谢拉
// 报错原因如下,你没有初始化 Test
import java.io.*;
import java.util.*;
class FileTest
{
public static void main(String[] args)
{
Test t = new Test();
t.f();
}
void f() {
File f=new File(filepath);
String names[]=f.list();
Arrays.sort(names,new Comparator()//利用内部类进行排序
{
public int compare(Object o1,Object o2)
{
String s1 = (String)o1;
String s2 = (String)o2;
return s1.toLowerCase().compareTo(s2.toLowerCase());
}
});
for(int i=0;i<names.length;i++)
System.out.println(names[i]);
}
}
#15
to guaxixi627(),lianhg(lianhg) :
我的意思是说用相对路径!这句话File f = new File("Data\\");这个Data目录我应该放在项目中的什么位置??是相对与谁的目录???
我的意思是说用相对路径!这句话File f = new File("Data\\");这个Data目录我应该放在项目中的什么位置??是相对与谁的目录???
#16
to guaxixi627() :
我按照你的说法根本不行的!
我是在我com.manual包下建立了Data文件夹,然后把程序改为:
package com.manual;
import java.io.*;
import java.util.*;
class NewTest
{
public static void main(String[] args)
{
File f=new File("com\\manual\\Data");
String names[]=f.list();
// 利用内部类进行排序
Arrays.sort(names,new Comparator(){
public int compare(Object o1,Object o2)
{
String s1 = (String)o1;
String s2 = (String)o2;
return s1.toLowerCase().compareTo(s2.toLowerCase());
}
});
for(int i=0;i<names.length;i++)
System.out.println(names[i]);
}
}
程序报错:
Exception in thread "main" java.lang.NullPointerException
at java.util.Arrays.sort(Unknown Source)
at com.manual.NewTest.main(NewTest.java:15)
我按照你的说法根本不行的!
我是在我com.manual包下建立了Data文件夹,然后把程序改为:
package com.manual;
import java.io.*;
import java.util.*;
class NewTest
{
public static void main(String[] args)
{
File f=new File("com\\manual\\Data");
String names[]=f.list();
// 利用内部类进行排序
Arrays.sort(names,new Comparator(){
public int compare(Object o1,Object o2)
{
String s1 = (String)o1;
String s2 = (String)o2;
return s1.toLowerCase().compareTo(s2.toLowerCase());
}
});
for(int i=0;i<names.length;i++)
System.out.println(names[i]);
}
}
程序报错:
Exception in thread "main" java.lang.NullPointerException
at java.util.Arrays.sort(Unknown Source)
at com.manual.NewTest.main(NewTest.java:15)
#17
to guaxixi627(),lianhg(lianhg) :
我的意思是说用相对路径!这句话File f = new File("Data\\");这个Data目录我应该放在项目中的什么位置??是相对与谁的目录???
Data目录放到项目中的任意位置都可以。根据下面获得的路径,来确定 Data目录 的位置
1) String path = System.getProperty("user.dir");
System.out.println("path :" +path); // 当前 class 的绝对路径
我的意思是说用相对路径!这句话File f = new File("Data\\");这个Data目录我应该放在项目中的什么位置??是相对与谁的目录???
Data目录放到项目中的任意位置都可以。根据下面获得的路径,来确定 Data目录 的位置
1) String path = System.getProperty("user.dir");
System.out.println("path :" +path); // 当前 class 的绝对路径
#18
lianhg(lianhg) :
String path = System.getProperty("user.dir");这里的user.dir是指哪个目录呢?
我在com.manual包下建立Data文件夹,这个Data目录的相对路径该怎样写???
String path = System.getProperty("user.dir");这里的user.dir是指哪个目录呢?
我在com.manual包下建立Data文件夹,这个Data目录的相对路径该怎样写???
#19
lianhg(lianhg) :
String path = System.getProperty("user.dir");这里的user.dir是指哪个目录呢?
-- 这是取得绝对路径。然后,截取字符串取得项目的路径。“项目的路径”\DATA
就是你需要的路径。
把下面的代码添加到你的程序中, 你就明白啦
String path = System.getProperty("user.dir");
System.out.println("path :" +path);
String path = System.getProperty("user.dir");这里的user.dir是指哪个目录呢?
-- 这是取得绝对路径。然后,截取字符串取得项目的路径。“项目的路径”\DATA
就是你需要的路径。
把下面的代码添加到你的程序中, 你就明白啦
String path = System.getProperty("user.dir");
System.out.println("path :" +path);
#20
lianhg(lianhg):我把你说的那两行加里面了,输出如下:
path :E:\eclipse\eclipse\workspace\ManualBrowser
ManualBrowser是我eclipse建立的工程名啊!我Data目录在我ManualBrowser\j2src\com.manual包下面啊!我这句话要改成:File f = new File(path+"\j2src\com.manual");是这样吗?
你这样是取绝对路径啊!!可以不可以直接用相对路径表示???
path :E:\eclipse\eclipse\workspace\ManualBrowser
ManualBrowser是我eclipse建立的工程名啊!我Data目录在我ManualBrowser\j2src\com.manual包下面啊!我这句话要改成:File f = new File(path+"\j2src\com.manual");是这样吗?
你这样是取绝对路径啊!!可以不可以直接用相对路径表示???
#21
是 File f=new File(path+"j2src\\com\\manual\\Data");吗?\
我这样写程序报错啊!
path :E:\eclipse\eclipse\workspace\ManualBrowser
Exception in thread "main" java.lang.NullPointerException
at java.util.Arrays.sort(Unknown Source)
at com.manual.NewTest.main(NewTest.java:17)
我这样写程序报错啊!
path :E:\eclipse\eclipse\workspace\ManualBrowser
Exception in thread "main" java.lang.NullPointerException
at java.util.Arrays.sort(Unknown Source)
at com.manual.NewTest.main(NewTest.java:17)
#22
File f=new File(path+"j2src\\com\\manual\\Data");
--> File f=new File(path+"\j2src\\com\\manual\\Data");
--> File f=new File(path+"\j2src\\com\\manual\\Data");
#23
不过,建议你 DATA 目录 应放到 ManualBrowser 下,不要和代码放置到一起。否则,打包时,易发生路径不正确。
应放到 ManualBrowser 下,就是 path + "/DATA",简单明了/
应放到 ManualBrowser 下,就是 path + "/DATA",简单明了/
#24
lianhg(lianhg):
我把这段代码用在jsp页面中
为什么程序输出:path :C:\Program Files\Apache Software Foundation\Tomcat 5.0\bin
怎么会是Tomcat的路径?
String path = System.getProperty("user.dir");
System.out.println("path :" +path);
是不是只能用于java应用程序中,不能用于jsp页面呢?
我把这段代码用在jsp页面中
为什么程序输出:path :C:\Program Files\Apache Software Foundation\Tomcat 5.0\bin
怎么会是Tomcat的路径?
String path = System.getProperty("user.dir");
System.out.println("path :" +path);
是不是只能用于java应用程序中,不能用于jsp页面呢?
#25
jsp页面中取得项目的路径的方法是 request.getContextPath()
#26
lianhg(lianhg):
request.getContextPath()是取的WEB项目的路径,如果我Data在WEB项目下,路径就应该是"
request.getContextPath()+"/Data"对吧,我做的测试request.getContextPath()结果是/Browser,这是个相对路径,对吧?
application.getRealPath("Data\\");我测试出来是绝对路径E:\eclipse\eclipse\workspace\ManualBrowser\Browser\Data,也就是说这两种方法都可以用!
如果用request.getContextPath()的话,路径要写为request.getContextPath()+"/Data";
如果用application.getRealPath("Data\\");直接就得到了绝对路径.
是不是这样的呢?谢谢!
#27
是的都可以
#28
lianhg(lianhg):
程序中
for(int i=0;i<names.length;i++)
System.out.println(names[i]);
为什么for()后不加{}呢??
for(int i=0;i<names.length;i++){
System.out.println(names[i]);
}
这两个有啥区别啊??
程序中
for(int i=0;i<names.length;i++)
System.out.println(names[i]);
为什么for()后不加{}呢??
for(int i=0;i<names.length;i++){
System.out.println(names[i]);
}
这两个有啥区别啊??
#29
没有区别。
for(int i=0;i<names.length;i++) 如果循环中只有一条语句,就可以不用加 {},默认执行
这个语句。
for(int i=0;i<names.length;i++) 如果循环中只有一条语句,就可以不用加 {},默认执行
这个语句。
#30
总觉得不加{}的习惯不好啊!还有你看我写的代码,不知道eclipse为什么有黄色的感叹号!
package com.manual;
import java.io.*;
import java.util.*;
class NewTest
{
public static void main(String[] args)
{
//File f=new File("com\\manual\\Data");
String path = System.getProperty("user.dir");
System.out.println("path :" +path);
File f=new File(path+"\\j2src\\com\\manual\\Data");
String names[]=f.list();
// 利用内部类进行排序
Arrays.sort(names,new Comparator(){
public int compare(Object o1,Object o2)
{
String s1 = (String)o1;
String s2 = (String)o2;
return s1.toLowerCase().compareTo(s2.toLowerCase());
}
});
for(int i=0;i<names.length;i++){
System.out.println(names[i]);
}
}
}
这段程序是黄色感叹!说Type safty:expressiong of type new Comparator() need unchecked
conversion to confirm to Comparator<? super T>
Arrays.sort(names,new Comparator(){
public int compare(Object o1,Object o2)
{
String s1 = (String)o1;
String s2 = (String)o2;
return s1.toLowerCase().compareTo(s2.toLowerCase());
}
});
package com.manual;
import java.io.*;
import java.util.*;
class NewTest
{
public static void main(String[] args)
{
//File f=new File("com\\manual\\Data");
String path = System.getProperty("user.dir");
System.out.println("path :" +path);
File f=new File(path+"\\j2src\\com\\manual\\Data");
String names[]=f.list();
// 利用内部类进行排序
Arrays.sort(names,new Comparator(){
public int compare(Object o1,Object o2)
{
String s1 = (String)o1;
String s2 = (String)o2;
return s1.toLowerCase().compareTo(s2.toLowerCase());
}
});
for(int i=0;i<names.length;i++){
System.out.println(names[i]);
}
}
}
这段程序是黄色感叹!说Type safty:expressiong of type new Comparator() need unchecked
conversion to confirm to Comparator<? super T>
Arrays.sort(names,new Comparator(){
public int compare(Object o1,Object o2)
{
String s1 = (String)o1;
String s2 = (String)o2;
return s1.toLowerCase().compareTo(s2.toLowerCase());
}
});
#31
import java.io.*;
import java.util.*;
class NewTest {
public static void main(String[] args) {
// File f=new File("com\\manual\\Data");
String path = System.getProperty("user.dir");
System.out.println("path :" + path);
File f = new File(path + "\\j2src\\com\\manual\\Data");
String names[] = f.list();
// 利用内部类进行排序
Arrays.sort(names, new Comparator<String>() {
public int compare(String o1, String o2) {
//String s1 = (String) o1;
//String s2 = (String) o2;
return o1.toLowerCase().compareTo(o2.toLowerCase());
}
});
for (int i = 0; i < names.length; i++) {
System.out.println(names[i]);
}
}
}
import java.util.*;
class NewTest {
public static void main(String[] args) {
// File f=new File("com\\manual\\Data");
String path = System.getProperty("user.dir");
System.out.println("path :" + path);
File f = new File(path + "\\j2src\\com\\manual\\Data");
String names[] = f.list();
// 利用内部类进行排序
Arrays.sort(names, new Comparator<String>() {
public int compare(String o1, String o2) {
//String s1 = (String) o1;
//String s2 = (String) o2;
return o1.toLowerCase().compareTo(o2.toLowerCase());
}
});
for (int i = 0; i < names.length; i++) {
System.out.println(names[i]);
}
}
}
#32
new Comparator<String>后面为什么要加<String>???JDK1.5必须这样吗??
#33
是 1.5 泛型
#34
用treemap吧,自动给你排号序了,不用那么麻烦
#35
import java.io.File;
import java.util.Collection;
import java.util.Iterator;
import java.util.TreeMap;
public class TestOrder {
/**
* @param args
*/
public static void main(String[] args)
{
String path = System.getProperty("user.dir");
System.out.println("path :" + path);
File f = new File(path);
String names[] = f.list();
TreeMap tm=new TreeMap();
for (int i = 0; i < names.length; i++)
{
//System.out.println(names[i]);
tm.put(names[i],names[i]);
}
Collection col = tm.keySet();
Iterator it = col.iterator();
while(it.hasNext())
{
System.out.println(it.next());
}
}
}
import java.util.Collection;
import java.util.Iterator;
import java.util.TreeMap;
public class TestOrder {
/**
* @param args
*/
public static void main(String[] args)
{
String path = System.getProperty("user.dir");
System.out.println("path :" + path);
File f = new File(path);
String names[] = f.list();
TreeMap tm=new TreeMap();
for (int i = 0; i < names.length; i++)
{
//System.out.println(names[i]);
tm.put(names[i],names[i]);
}
Collection col = tm.keySet();
Iterator it = col.iterator();
while(it.hasNext())
{
System.out.println(it.next());
}
}
}
#36
支持中文排序的!