读取文本文件内容的碰到问题--如何合并顺序的数字

时间:2008-07-18 05:14:01   来源:论坛整理  作者:  编辑:chinaitzhe
File file=new File("c:\\");
File[] tempFile=file.listFiles();//读取120文件
for(int i =0;i <tempFile.length;i )
{
try
{
if(tempFile[i].isFile())
{
FileReader fr=new FileReader("c:\\" tempFile[i].getName());
BufferedReader br=new BufferedReader(fr);
try
{
while(br.ready())
{
String line=br.readLine();
String[] line1=line.split("\t");

String first=line1[0];
String end=line1[1];

long firstip=Long.parseLong(first);
long endip=Long.parseLong(end); System.out.println(first "\t" end);
}
} finally
{
System.out.println("OK");
}
}

}//try
catch(IOException e)
{
System.out.println("error");
}

}


上面程序是读取文本文件的
文本的内容是:
3652113248 3652113263
3652113264 3652113279
3652113280 3652113407
3652113664 3652114175

程序运行的结果是:
3652113248 3652113263
3652113264 3652113279
3652113280 3652113407
3652113664 3652114175
OK

问题是:前三行的数字是连接在一起的,如何直接输出这样的结果:
3652113248 3652113407
3652113664 3652114175

万分感激
网友回复:此回复为自动发出,仅用于显示而已,并无任何其他非凡作用
楼主【cnhuai】截止到2008-07-17 11:12:26的历史汇总数据(不包括此帖):
发帖的总数量:53 发帖的总分数:858 每贴平均分数:16
回帖的总数量:39 得分贴总数量:0 回帖的得分率:0%
结贴的总数量:51 结贴的总分数:818
无满足结贴数:11 无满足结贴分:220
未结的帖子数:2 未结的总分数:40
结贴的百分比:96.23 % 结分的百分比:95.34 %
无满足结贴率:21.57 % 无满足结分率:26.89 %
值得尊敬
网友回复:完全不晓得你说啥子
网友回复:已经说的很清楚了
3652113248 3652113263
3652113264 3652113279
3652113280 3652113407

前三排 数字是首尾相接的
就直接输出
3652113248 3652113407 即可



网友回复:我承认我理解能力有限。。能不能在说的具体点
网友回复:我再仔细说下吧
文本文件中的
3652113248 3652113263
3652113264 3652113279
3652113280 3652113407

代表意思是
3652113248到3652113263之间所有数字
3652113264到3652113279之间所有数字
3652113280到3652113407之间所有数字
3652113664到3652114175之间所有数字

而前三排是连续的
所以想在读取文本文件的时候
同时合并一些连续的:
3652113248 3652113407
网友回复:大家来帮忙啊 还有不清楚的吗
网友回复:意思清楚了,你的意思就是说去掉一段连续数字中的中间部分,只输出两头对吗?
网友回复:to:hmsuccess

是的 把该合并的合并了

网友回复:通过楼上的讲述,我懂了……

我觉得,想学好一种语言,还是先学好 local language

网友回复:
引用 8 楼 cnhuai 的回复:
to:hmsuccess

是的 把该合并的合并了

网友回复:这样,你把读入的每个值,转换为long型的,然后进行比较,连续的就跳过,
网友回复:
Java code





Code highlighting produced by Actipro CodeHighlighter (freeware)

http://www.CodeHighlighter.com/



import java.io.BufferedReader;

import java.io.FileReader;

import java.io.IOException;



public class Test3 {



    public static void main(String[] args) {

        BufferedReader br = null;

        try {

            br = new BufferedReader(new FileReader("aa.txt"));

            long n = Long.MIN_VALUE;

            for(String line = null; (line = br.readLine()) != null; ) {

                String[] str = line.split("\\s ");

                long a = Long.parseLong(str[0]);

                long b = Long.parseLong(str[1]);

                if(n   1 != a) {

                    if(n != Long.MIN_VALUE) {

                        System.out.println(" "   n);

                    }

                    System.out.print(a);

                }

                n = b;

            }

            System.out.println(" "   n);

        } catch (IOException e) {

            e.printStackTrace();

        } finally {

            try {

                br.close();

            } catch (IOException e) {

                e.printStackTrace();

            }

        }

    }

}


网友回复:try
{
long lastEnd = 0;
while(br.ready())
{
String line=br.readLine();
String[] line1=line.split("\t");

String first=line1[0];
String end=line1[1];

long firstip=Long.parseLong(first);
long endip=Long.parseLong(end);
if(first != (lastEnd 1)){
System.out.println("\t" lastEnd);
System.out.print(first);
lastEnd = endip; }
else{
lastEnd =endip;
}
}
System.out.println("\t" lastEnd);


就是这个意思,会多个零。抛砖引玉了


关键字:读取,文本文件,内容,碰到问题,合并,顺序,

文章评论

共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面