黑马程序员技术交流社区
标题:
Io file疑问[已解决]
[打印本页]
作者:
陈嘉宾
时间:
2012-6-5 21:37
标题:
Io file疑问[已解决]
本帖最后由 陈嘉宾 于 2012-6-5 22:00 编辑
遍历文件是说都要用字符数组方法吗?还有for(String name:arr)这句话是什么意思?
public static void listDemo2()
{
File dir=new File("d:\\java1223\\day18");
String[] arr=dir.list(new FilenameFilter()
{
public boolean accept(File dir,String name)
{
return name.endWith(".bmp");
}
});
for(String name:arr)
{
System.out.println(name);
}
}
作者:
杜俊彪
时间:
2012-6-5 21:44
本帖最后由 杜俊彪 于 2012-6-5 21:54 编辑
是字节数组吧; 其实字节数组是
一个字节一个字节
的读的,只不过是把那些字符先存到你定义的字节数组中; 当然用字符流也可以读,是一个字符一个字符的读,也可以整行整行地读,但整行地读的原理是一个 字符一个符地读,先将它们一个一个存入字符数组,然后一次性读出来 ; 和这个一个意思; 好好比较一下吧!!!
for(int name=0 ;name<arr.length;name++){
System.out.println(arr[name]) ;
}
复制代码
作者:
李春阳
时间:
2012-6-5 21:52
这个是
增强for循环
的用法:for循环PK版!
格式:
for(循环的变量类型 循环变量的名称 : 要被遍历的目标)
{
具体循环内容;
}
其实加强版功能用原版一样可以实现,就你的例子来说:
加强for循环:
for(String name:arr)
{
System.out.println(name);
}
普通for循环:
for(int name=0; name<arr.length; name++)
{
System.out.println(arr[name]);
}
加强版我们可以看出来,加强版木有name<arr.length这一段,也就是不用判断条件(本题为数组长度)。
这样就避免了下表越界的情况啦~
但是我现在一直还是用原版,打好基础才是王道
作者:
陈嘉宾
时间:
2012-6-5 21:53
String[] arr这个不是字符型数组吗?
作者:
杜俊彪
时间:
2012-6-5 21:56
陈嘉宾 发表于 2012-6-5 21:53
String[] arr这个不是字符型数组吗?
是字符数组, 但它是一个字符串一个字符串地输出来的; 例如 arr[0] = "abc" ; System.out.println(arr[0]) ; 输出 abc
作者:
张洁
时间:
2012-6-5 21:57
这种for循环是增强循环,简化了集合的遍历。
本质上和for(int i=0;i<length;i++)没太大区别。
举个例子,假设我们要遍历一个集合对其中的元素进行一些处理,代码如下
void processAll(Collection c){
for(Iterator i=c.iterator(); i.hasNext(); ){
MyClass myObject = (MyClass)i.next();
myObject.process();
}
}
使用For-Each循环,我们可以把代码改写成:
void processAll(Collection<MyClass> c){
for (MyClass myObject :c)
myObject.process();
}
这样就增强了代码的阅读性,避免了强制类型转换。
for(String name: arr)的意思是:for(String name: arr)中的arr是字符串数组,意思是每次循环取一个字符串出来赋值给name,直到arr数组长度-1结束。
作者:
陈嘉宾
时间:
2012-6-5 21:59
哦明白了谢谢!
作者:
付信榕
时间:
2012-6-5 22:11
遍历文件是说都要用字符数组方法吗?还有for(String name:arr)这句话是什么意思?
这里的for是高级for循环。格式for(变量类型 变量名: 集合或数组){}这里的集合必须是实现了iterable接口的。
与普通的for语句需要循环变量 速度不及增强for循环 其实增强for循环只是简化下for 至于什么时候用 看需不需要循环变量来操作循环的数组或者集合 ,需要就选用高级for。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2