首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

求好手点拨一个Java代码中的运行结果与预期不符的原因.

2013-09-15 
求高手点拨一个Java代码中的运行结果与预期不符的原因..类中的“ArrayList的实体:logData对象之中后进行存

求高手点拨一个Java代码中的运行结果与预期不符的原因..
类中的“ArrayList的实体:logData对象之中后进行存储”的功能....
    源代码如下:
    


import java.io.BufferedReader;   
import java.io.FileReader;   
import java.io.IOException;   
import java.util.ArrayList;
   
public class ReadTxt {   
 static ArrayList<String> logData = new ArrayList<String>();
static String text = null;
    public static void read(String filePath) {   
         try {   
              FileReader input = new FileReader(filePath);   
              BufferedReader br = new BufferedReader(input);   
              while (( text = br.readLine()) != null) {   
              logData.add(text);
              }   
              br.close();   
              input.close();   
        } catch (IOException e) {   
              e.printStackTrace();   
        }   
     }   
}  

    之后的下面的代码,是弟我进行的一个测试类:
    弟我原本想要将一个硬盘中的文件中的数据被读取到内存中,然后输出到一个文件中的...
    测试类源代码如下:
    

public class Test32 {
static String[] str1 = null;
static String[] str8 = null;
static String str10 = null;
static String Path = "D:\\MyDoc\\Dport\\MakeaTry.txt";
static int len = -1;
public Test32(){
String str = "E:\\8.txt";
ReadTxt.read(str);
len = ReadTxt.logData.size();
str8 = new String[len];
for(int i=0;i<len;i++){
str8[i]=ReadTxt.logData.get(i);


}
}
public static void main(String[] args){
new Test32();
for(int i=0;i<len;i++){
str10 =str10+str8[i];
}
str1 = str10.split(".");
int len1 = str1.length;
System.out.println(len1);
for(int i = 0;i<len1;i++){
    WriteTxt.list.add(str1[i]);
}
}
}


    但是,我得到的输出结果最终为:
    求好手点拨一个Java代码中的运行结果与预期不符的原因.
    高手,我在测试类的第18行调用了我的构造方法,并且,在第23行进行了输出.
    我的文件中的数据,是“一个个的字符串”“共有200条字符串数据”“每一个字符串都采用一个"."进行分隔”,由弟我写的代码,应该可以得到:
    输出的数据,应该为:
    200吧?
    为什么这里弟我的代码,与弟我的预期,产生了不一致?
    希望得到高手的点拨:
    这里的“预期与输出效果不一致”的原因是什么...?
    谢谢高手!!
    一百分奉上!!
                                                                一位日日夜夜向着理想奔跑的筑梦者
                                                                2013年9月15日星期日早晨6点39分 java 源代码 arraylist 类 Java?IO
[解决办法]
str10 =str10+str8[i];这个地方要加一个分隔符,改为str10 =str10+“."+str8[i];后面的 str1 = str10.split(".");改为str1 = str10.split("\\.");进行转义, "."是一个正则表达式。
[解决办法]
看一下split的API,public String[] split(String regex)
他这接收的是一个正则表达式,而.是正则表达式元字符,如果要用它进行分割,
必须进行转义\\.

热点排行