A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 程序爱好者 中级黑马   /  2014-4-27 10:34  /  1103 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 程序爱好者 于 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
为什么不是 具体的文件名,而是乱码....

4 个回复

倒序浏览
   for (String name:s) {
                        System.out.println(s);
                }
你输出的是s.    改为name
回复 使用道具 举报 1 0
增强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.        }
复制代码

评分

参与人数 1技术分 +1 收起 理由
枫儿 + 1 赞一个!

查看全部评分

回复 使用道具 举报 1 0
这个不是乱码,而是你打印的String[]这个对象,正如楼上所说,需要打印的是name,而不是s这个对象。
回复 使用道具 举报 1 0
SyouRai_Tsk 发表于 2014-4-27 11:01
for (String name:s) {
                        System.out.println(s);
                }

谢谢了!!!!!!!:)
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马