黑马程序员技术交流社区

标题: 好纠结的问题啊 [打印本页]

作者: 贾飞雨    时间: 2012-7-13 22:49
标题: 好纠结的问题啊
本帖最后由 yufeiant 于 2012-7-14 18:54 编辑


import java.io.File;

import java.util.LinkedList;

public class FileDemo {
        
        public static void main(String[] args) {
                File file = new File("StringDemo.java.txt");
                char []  array = file.getName().toCharArray();
                LinkedList<Integer> as = new LinkedList<Integer>();
                for(int x = 0;x<array.length;x++){
                        if(".".equals(array[x])){
                                as.addFirst(x);
                        }
               
                }
                StringBuilder str = new StringBuilder();
                int x  = as.getFirst();
                for(int y = x;x<as.size();x++)
                {
                        str.append(array[y]);
                }
                        System.out.println(str.toString());

        }
}
//没有想到自己会犯这样的错误,可是感觉自己对的啊,大家帮我看看
Exception in thread "main" java.util.NoSuchElementException
        at java.util.LinkedList.getFirst(LinkedList.java:109)
        at si.FileDemo.main(FileDemo.java:23)



作者: 陆强强    时间: 2012-7-13 23:40
本帖最后由 陆强强 于 2012-7-13 23:41 编辑

            for(int x = 0;x<array.length;x++){
                        if(".".equals(array[x])){//array[x]是字符,“.”是字符串不能用equals。改成:   '.'==array[x]
                                as.addFirst(x);
                        }
               
                }
                StringBuilder str = new StringBuilder();
                int x  = as.getFirst();
                for(int y = x;x<as.size();x++)//x<as.size(),这里as只有2个元素,所以X<2。但上面 int x  = as.getFirst()的X已经等于10了,所以条件不成立,循环结束。
                                                               //改成x<array.length
                {
                        str.append(array[y]);//这句执行不到
                }
                        System.out.println(str.toString());//所以这里为空






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