黑马程序员技术交流社区

标题: File对象功能 [打印本页]

作者: 程序爱好者    时间: 2014-4-27 10:34
标题: File对象功能
本帖最后由 程序爱好者 于 2014-4-28 08:55 编辑
  1. public static void list2()
  2.         {
  3.                 File f=new File("E:\\");
  4.                 String[] s=f.list(new FilenameFilter()
  5.                 {
  6.                         
  7.                         public boolean accept(File f,String name)
  8.                         {
  9.                                 return name.endsWith(".html");
  10.                         }
  11.                 });
  12.                 for (String name:s) {
  13.                         System.out.println(s);
  14.                 }
  15.         }
复制代码

打印结果是:[Ljava.lang.String;@544a5ab2
为什么不是 具体的文件名,而是乱码....
作者: SyouRai_Tsk    时间: 2014-4-27 11:01
   for (String name:s) {
                        System.out.println(s);
                }
你输出的是s.    改为name
作者: @文瑞    时间: 2014-4-27 11:03
增强for循环中是将数组s中的值,逐个赋值给name然后打印
所以sysout输出的应该是name,你试试看:
  1. 01.public static void list2()

  2. 02.        {

  3. 03.                File f=new File("E:\\");

  4. 04.                String[] s=f.list(new FilenameFilter()

  5. 05.                {

  6. 06.                        

  7. 07.                        public boolean accept(File f,String name)

  8. 08.                        {

  9. 09.                                return name.endsWith(".html");

  10. 10.                        }

  11. 11.                });

  12. 12.                for (String name:s) {

  13. 13.                        System.out.println(name);

  14. 14.                }

  15. 15.        }
复制代码

作者: 松毛    时间: 2014-4-27 11:05
这个不是乱码,而是你打印的String[]这个对象,正如楼上所说,需要打印的是name,而不是s这个对象。
作者: 程序爱好者    时间: 2014-4-28 08:55
SyouRai_Tsk 发表于 2014-4-27 11:01
for (String name:s) {
                        System.out.println(s);
                }

谢谢了!!!!!!!:)




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2