0 0

请大家帮我看看这个题是怎么个意思,应该如何去做!谢谢0

文本文件A.txt中顺序包含如下文本:
HEDRA
SHDRA
POSDA1
POSDA2
POSDA3
HEDRB
SHDRB
POSDB1
POSDB2
POSDB3
.....
.....
TLRL
其中每个文本行前四个字母称为行类型,每个文本块从HEDR行开始到下个HEDR结束(不含下个HEDR行),最后一个TLRL是文件结束标志。
约束条件1、处理掉文件不存在、文件打开或读取失败等异常。2、忽略掉空行。3、每个文本行前四个字符必须由三个大写英文字母加一个大写英文字母或一个数字组成,要求用正则表达式进行验证。4、如果文件末尾没有TLRL行,则返回空ArrayList,即认为该文件无效。
  请编写一个方法,返回由若干个文件块组成的ArrayList,即其中每个元素是文本块,每个文本块也定义成一个ArrayList.
返回的ArrayList的内存映射如下描述
     【
           【HEDRA,SHDRA,POSD,POSD】,
           【HEDRB,SHDRB,POSD,POSD】,
            ......
            ......
     】
2014年5月28日 16:31

3个答案 按时间排序 按投票排序

0 0

采纳的答案

我写了一个demo,希望能帮到你
package com.wenqiang.regex;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Pattern;

/**
* 其中每个文本行前四个字母称为行类型,每个文本块从HEDR行开始到下个HEDR结束(不含下个HEDR行),最后一个TLRL是文件结束标志。
* 约束条件:
* 1、处理掉文件不存在、文件打开或读取失败等异常。
* 2、忽略掉空行。
* 3、每个文本行前四个字符必须由三个大写英文字母加一个大写英文字母或一个数字组成,要求用正则表达式进行验证。
* 4、如果文件末尾没有TLRL行,则返回空ArrayList,即认为该文件无效。
* 请编写一个方法,返回由若干个文件块组成的ArrayList,即其中每个元素是文本块,每个文本块也定义成一个ArrayList.
* @author wenqiang
*
*/
public class MessageHander {

private final static String reg = "^[A-Z]{3}[A-Z0-9]+";

public boolean pathIsExist(String path){

File file = new File(path);

return fileIsExist(file);

}

public boolean fileIsExist(File file){
return file.exists();
}

public List<ArrayList<String>> handerMsg(String filepath){

List<ArrayList<String>> msgList = new ArrayList<ArrayList<String>>();

if(!pathIsExist(filepath)){

System.out.println("文件不存在!--PATH");
}else{

File file = new File(filepath);

FileInputStream fis = null;

InputStreamReader isr = null;

BufferedReader br = null;
try {
fis = new FileInputStream(file);

isr = new InputStreamReader(fis);

br =  new BufferedReader(isr);

String temp = "";

ArrayList<String> tempList = null;
try {
while(true){
temp = br.readLine();
if("TLRL".equals(temp)){
if(tempList!=null){
msgList.add(tempList);
}
System.out.println("文件读取结束--TLRL!");
break;
}else if(temp==null){
if(tempList!=null){
msgList.add(tempList);
}
System.out.println("文件读取结束--NULL!");
break;
}else{
if("".equals(temp)){

}else if(Pattern.matches(reg, temp.trim())&&"HED".equals(temp.substring(0, 3))){
if(tempList!=null){
msgList.add(tempList);
}
tempList = new ArrayList<String>();
tempList.add(temp);
}else{
tempList.add(temp);
}

}

}
} catch (IOException e) {

System.out.println("文件读取失败--IO!");
e.printStackTrace();
return msgList;
}

} catch (FileNotFoundException e) {
System.out.println("文件打不开!--FILE");
e.printStackTrace();
return msgList;
}finally{
try {
br.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
return msgList;
}

public static void main(String[] args) {

String filepath = "e:/file.txt";

List<ArrayList<String>> resultList = new MessageHander().handerMsg(filepath);

System.out.println(resultList.size());

System.out.println(resultList.toString());
//System.out.println(Pattern.matches(reg, "HEDRA"));
//System.out.println("HED".equals("HEDRA".substring(0, 3)));
}
}

2014年5月29日 11:51
0 0

约束1:打开文件或者读取文件失败要捕获异常信息用try catch就好了
约束2:while((line = br.readLine()) ==null)不读取这行
约束3:用正则验证前四个字符,每次读取一行,截取前四个九OK了,至于正则表达式,网上搜一下
约束4:while((sc.hasNextLine()&&(line=sc.nextLine())!=null)){
    if(!sc.hasNextLine())
    System.out.println(line);判断line的值是否是TLRL
     }

最后的意思就是:你每次读取一个HEDR开头的到head结尾的数据,就把他放在arraylist中

2014年5月28日 16:41
0 0

1.验证文件的合法性
2.读取文本内容,按文本块分组构成arraylist返回

2014年5月28日 16:39

相关推荐

    最新14套ISTQB(CSTQB)模拟试题之后7套

    这类题目是针对的ISTQB初级测试工程师认证的题目哈,非高级测试工程师的,后续我会陆续将高级测试工程师的模拟题上传上来,谢谢大家支持。 3. 对于为什么我不上传中文版的,中文版的模拟试题是相当的少的,报名...

    《C++编程思想》(第二版)练习题答案

    买下了这个习题答案 结果下载下来一看 tmd 也不是什么习题答案阿 就是光盘里的内容 靠的 这个我比你还全呢 我买的可是正版的《C++编程思想》带光盘的 我现在把这个资源给大家共享下 不设积分 大家帮我顶下阿 谢谢了 ...

    IC3模拟试题 (有答案的哦!)

    IC3模拟试题 看看吧! 希望对你又有! 谢谢!

    高级面试题刷多了,这些Android基础面试题你还会做吗?

    想起疫情之前在给公司招聘3年以下经验的android开发人员,趁这个空闲的机会整理下一些基本的面试题,不是很多,我个人觉得比较典型的,时间长了一些不常用的细节问题都快忘记了,也许是轮子用多了吧,如果能在赶项目...

    小学四年级数学试题

    这部分看起来像是一个对话,"谢谢你 小姑娘 你叫什么名字呀",在中文中,正确的标点应该是:“谢谢你,小姑娘,你叫什么名字呀?”记住在句子结束时使用句号,问句则用问号。 3. **计算题** - "25x4=( )":这是一...

    HSK三级考试模拟题.pdf

    * 男:小王,帮我开一下门,好吗谢谢!女:没问题。 这些例子测试考生的听力理解能力,要求考生能够听懂对话的内容,并回答相关的问题。 阅读部分 阅读部分共30题,需30分钟完成。该部分测试考生的阅读理解能力,...

    英语二期末考试复习题-上海交大

    ### 英语二期末考试复习题知识点解析 #### 一、交际用语解析 这部分主要考查学生在日常生活中使用英语进行交流的能力。题目选自教材课后练习及统考题库,涵盖了各种常见对话场景。 ##### 1. 应对购物场景 **题目**...

    考研数学150分是这样练成的

    我在学数学的过程中,很少去问别人这道题该怎么做,就想通过自己的思考解决,不轻易认输,希望大家也不要省略掉这一认真思考过程,要勇于挑战自己,不要轻易投降。 &lt;br&gt;3、学会总结,善于归纳,使知识系统化。...

    Unit 2 Colours Part A 习题 2.doc

    一个可能的正确版本是 "Show me this red train."(给我看看这辆红色的火车。)这里,"this" 指示代词用于特指某一辆火车,"red" 是颜色形容词,"train" 是名词,"show me" 表示“给我看”。 2. 句子 "Mris Jones" ...

    蓝桥杯2011-2018国赛真题.zip

    欢迎关注=.=,如果这个博客对你有帮助的话可以点个赞,有问题 或者别的意见可以在评论下方提出,我看到会及时回复,谢谢~ 另外,刚刚上手Python的同学可以参考菜鸟教程学习: ...

    A Unit2练习题及答案精选.doc

    Here you are.",意思是"我可以看看吗?当然,给你。". 4. "In w___________ box?" 应该填"which",完整的句子是"In which box?",意思是"在哪个盒子里?". 5. "Is this y_________ copybook?" 应该填"your",完整...

    高考日语小题训练(一).doc

    6. 这个句子表示连"旅行都不能去,更不用说付房租",答案是B さえ,表示"甚至"。 7. 句子表示"在梅雨季节乘坐公交车没有比这更令人讨厌的事了",C さえ表示"就连...也...",加强否定语气。 8. 题目中表示"如果你去...

    人教版(新起点)小学六年级下册英语Unit6SummerVacationlesson2试题.pdf

    这篇资料是针对人教版(新起点)小学六年级下册英语教材Unit 6 Summer Vacation Lesson 2设计的一份...你:谢谢你的帮助,我会看看的。如果需要我还会回来找你。 店员:不客气,有任何问题随时来问我。祝您购物愉快!

    Spring security

    我用Freemind 画了一幅Spring Security的一个整体概况图,从大的方向列出了配置一个Spring Security需要的一些东西,包括如何配置,配置文件中应该包括哪些东西, 但是具体的细节大家还是要看书,按照我画的这个图来...

    代码 微软 数据结构 算法 面试题

    微软等数据结构算法面试题前20道。里面的代码均经过测试,代码是用C写的(我只会这语言)。大多数算法都是自己想出来的,有自己的注释。适合编程能力不是很强的人学习、模仿吧。...谢谢!2011-10-27

    98到2008上半年试题汇总

    好好看看历年试题哦!加油,祝贺你成功!谢谢你闷得参与!

    分布式系统期末考试题.zip

    3、该资源包括全部源码,需要具备一定基础才能看懂并调试代码,介意勿下,谢谢理解。 分布式系统期末考试题.zip分布式系统期末考试题.zip分布式系统期末考试题.zip分布式系统期末考试题.zip分布式系统期末考试题....

    (完整版)小学语文句子排序练习题及答案.docx

    - 我说:“不用谢,这是我应该做的。” - 星期日,我坐汽车去奶奶家。 - 我刚坐下,一位老爷爷提着篮子上了车。 - “谢谢奶奶。”我说了声,就把压岁钱交给爸爸,留着给我交学费。 6. 句子排序练习6: - 老师...

    2019名校高考作文模拟作文题及范文:礼遇.doc

    今天,我想和大家分享一个发生在我们身边的故事,一个关于礼遇的故事。在2019年,某市的一位90后女司机在斑马线上礼让一位88岁的退休老干部,而老人以脱帽鞠躬的方式回以深深的敬意。这一幕,犹如一股清流,流淌在...

Global site tag (gtag.js) - Google Analytics