有两个文件context.txt和words.conf,请尝试将他们合并成为一段文字,并打印出来。

这两个文件内容如下:

context.txt

“并不是每个人都需要$(qunar)自己的粮食,$(flight.1)每个人都需要做自己穿的$(flight.2),我们说着别人发明的$(hotel),使用别人发明的数学......我们一直在$(tuan)别人的成果。使用人类的已有经验和知识$(travel.1)来进行,是一件$(travel.2)的事情”

word.conf

flight=也不是:衣服

qunar=种植

hotel=语言

tuan=使用

travel=发明创造:很了不起

参考博客:http://blog.csdn.net/wuwenxiang91322/article/details/11694051

对程序进行一点修改简化,思路还是没有变化。

主要涉及两方面操作,一方面就是文件的读取,也就是Java的IO操作;另一方面考察String的相关操作。

首先将两个文本读取,第一个文本context.txt可用FileReader 直接读取为String类型 ,第二个word.conf需要逐行读取采用的是BufferedReader 。

剩下就是word.conf读取内容转化为HashMap 用于下一步的查找替换,采用原作者的方式。

最后就是利用构建的HashMap对读取的context.txt内容进行替换。

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map; public class TransferWord {
public static void main(String[] args) throws IOException {
String path = "D://word.conf";
String contentPath = "D://context.txt";
FileReader con = new FileReader(contentPath);
FileReader word = new FileReader(path);
// 读取主文件内容
char[] cs = new char[500];
int len = 0;
String contextString = null;
while ((len = con.read(cs)) != -1) {
contextString = new String(cs, 0, len);
System.out.println("文本内容:"+contextString); }
con.close();
// 配置文件注入hash
BufferedReader br = new BufferedReader(word);
String str;
Map<String, String> map = new HashMap<String, String>();
while ((str = br.readLine()) != null) {
String pre = str.substring(0, str.indexOf("="));
String sub = str.substring(str.indexOf("=") + 1, str.length());
String[] arr = sub.split(":");
if (arr.length != 1) {
for (int i = 1; i <= arr.length; i++) {
map.put("$(" + pre + "." + i + ")", arr[i - 1].trim()); // 去掉首尾空格
}
} else {
map.put("$(" + pre + ")", sub.trim()); }
}
br.close();
//进行替换操作
Iterator iter=map.keySet().iterator();
while(iter.hasNext()){
String key=iter.next().toString();
String value=map.get(key);
if(contextString.contains(key)){
contextString=contextString.replace(key,value);
}
}
//输出字符串
System.out.println("新的文本内容:"+contextString);
}
}

2014年去哪儿网笔试题--有两个文件context.txt和words.conf,请尝试将他们合并成为一段文字,并打印出来。的更多相关文章

  1. [算法 笔记]2014年去哪儿网 开发笔试(续)第一题BUG修正

    上一篇的blog地址为:http://www.cnblogs.com/life91/p/3313868.html 这几天又参加了一个家公司的笔试题,在最后的编程题中竟然出现了去哪儿网开发的第一题,也就 ...

  2. 网易2014校园招聘杭州Java笔试题

    10) ABC http://soft.chinabyte.com/os/56/12516056.shtml 11) BD. 12) AC. http://blog.sina.com.cn/s/blo ...

  3. java笔试题: ——将e:/source文件夹下的文件打个zip包后拷贝到f:/文件夹下面

    将e:/source文件夹下的文件打个zip包后拷贝到f:/文件夹下面 import java.io.*; import java.util.zip.ZipEntry; import java.uti ...

  4. zrrx笔试题(一)——文件复制&日期天数差

    1. 利用输入输出流来复制文件 步骤:1.构造文件字节输入输出流  2.创建一个字节数组,用来指定每次复制的字节大小   3.输入流从源文件读取字节,输出流将字节写入文件 import java.io ...

  5. 关于完整解答Leo C.W博客中名为“我们公司的ASP.NET 笔试题,你觉得难度如何”的所有题目

    关于完整解答Leo C.W博客中名为“我们公司的ASP.NET 笔试题,你觉得难度如何”的所有题目,请大家鉴定,不足之处,敬请指教! 第1到3题解答如下: public enum QuestionTy ...

  6. Python求解进制问题(阿里巴巴2015笔试题)

    问题描述:用十进制计算30的阶乘,然后把结果转换成三进制表示,那么该进制表示的结果末尾会有多少个连续0?解析:作为笔试题的话,要想按照题意先把阶乘结果计算出来再转换成三进制最后再数0的个数,时间肯定来 ...

  7. C++笔试题2(基础题)

    温馨提醒:此文续<C++笔试题(基础题)> (112)请写出下列程序的输出内容 代码如下: #include <iostream> using namespace std; c ...

  8. dede 替换后台两个文件去广告

    A:替换后台两个文件去广告  dede/templets路径下两个文件 1.index2.htm <!--This is IE DTD patch , Don't delete this lin ...

  9. 一个selenium笔试题——去哪网首页获取符合要求的url并保存

    今天在群里看到这样一个笔试题:请使用任何熟悉的面向对象编程语言,编写代码,获取http://www.qyer.com页面中,所有</a>标签"href"属性值包含英文单 ...

随机推荐

  1. Maven java项目管理工具

    Maven java项目管理工具 1.安装maven 下载最新的maven 下载地址 http://maven.apache.org/download.cgi 传到要安装的目录 例如/opt/下 # ...

  2. BZOJ 3566: [SHOI2014]概率充电器( 树形dp )

    通过一次dfs求出dp(x)表示节点x考虑了x和x的子树都没成功充电的概率, dp(x) = (1-p[x])π(1 - (1-dp[son])*P(edge(x, son)).然后再dfs一次考虑节 ...

  3. php基础知识--文件操作

    文件操作 文件 广义角度: 任何一个在磁盘上可以看到的符号(包含真正的文件及文件夹) 狭义角度: 真实存储数据的载体(不包含文件夹, 如doc文件,txt文件等) 文件操作: 对文件的增删改查 文件分 ...

  4. windows下搭建python+selenium环境

    1.安装python https://www.python.org/ 2.安装setuptools(python的基础包工具) 下载地址:https://pypi.python.org/pypi/se ...

  5. 简单使用 PHP Phar 打包php代码 笔记

    Phar简介:Phar 归档的概念来自 Java™ 技术的 JAR 归档,它允许使用单个文件打包应用程序,这个文件中包含运行应用程序所需的所有东西.该文件不同于单个可执行文件,后者通常由编程语言生成, ...

  6. codeforces 540D 概率dp

    传送门 大概可以这样理解, 一开始有r个石头, p个布, s个剪刀, 每一天有其中的两个相遇, 如果两个是相同的种类, 什么都不会发生, 否则的话有一个会挂掉, 问最后每一种生存的概率. dp[i][ ...

  7. 四轴飞行器1.2.2 RT-Thread 串口

    四轴飞行器1.2.2 RT-Thread 串口        本来是打算说根据RT-Thread的设备管理提供的驱动接口些串口驱动的,但是仔细一看,我去,串口驱动写好了,只需要调用就可以了.下面我们说 ...

  8. .NET(C#):XmlReader和Whitespace以及MoveToContent和ReadToFollowing方法

    原文 http://www.cnblogs.com/mgen/archive/2012/04/26/2471403.html XmlReader默认是读取XML文件中的Whitespace和注释的. ...

  9. BZOJ 1101 [POI2007]Zap(莫比乌斯反演)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1101 [题目大意] 求[1,n][1,m]内gcd=k的情况 [题解] 考虑求[1,n ...

  10. uva 719 Glass Beads(后缀自动机)

    [题目链接] https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=524&am ...