下面是编程题的第二题,当时看见试题后就木了,平时在IDE下编程,现在让纯手写,没有API,瞬间感觉回到了解放前。最终无奈发卷二十分钟后黯然离开。

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

这两个文件内容如下:

context.txt

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

word.conf

fight=也不是:衣服
qunar=种植
hotel=语言
tuan=使用
travle=发明创造:很了不起

下面是我考场上思路的实现,可能效率不高,欢迎大牛们提供更好的方法:

package test.xiaozhao;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class ReadFile {
public static void main(String[] args) throws IOException {
String path = "D://word.conf";
String contentPath = "D://context.txt";
String content=readFileContent(contentPath);
System.out.println("Content="+content);
FileInputStream in = new FileInputStream(path);
BufferedReader dr = new BufferedReader(new InputStreamReader(in));
String str;
Map<String, String> map = new HashMap<String, String>();
while ((str = dr.readLine()) != null) {
String pre = str.substring(0, str.indexOf("=")).toString();
String sub = str.substring(str.indexOf("=") + 1, str.length())
.toString();
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());
}
}
Iterator iter = map.keySet().iterator();
while (iter.hasNext()) {
String key=iter.next().toString();
String value=map.get(key);
if(content.contains(key)){
content=content.replace(key,value);
}
}
System.out.println("content--new="+content);
}
/**
* 读取文件内容
* @param fileName
* @return
* @throws IOException
* @author WWX
* date:2013-9-14下午8:34:47
*/
private static String readFileContent(String fileName) throws IOException {
File file = new File(fileName);
BufferedReader bf = new BufferedReader(new FileReader(file));
String content = "";
StringBuilder sb = new StringBuilder();
while (content != null) {
content = bf.readLine();
if (content == null) {
break;
}
sb.append(content.trim());
}
bf.close();
return sb.toString();
}
}

输出结果:

Content=“并不是每个人都需要$(qunar)自己的粮食,$(fight.1)每个人都需要做自己穿的$(fight.2),我们说着别人发明的$(hotel),使用别人发明的数学......我们一直在$(tuan)别人的成果。使用人类的已有经验和知识$(travle.1)来进行,是一件$(travle.2)的事情”
content--new=“并不是每个人都需要种植自己的粮食,也不是每个人都需要做自己穿的衣服,我们说着别人发明的语言,使用别人发明的数学......我们一直在使用别人的成果。使用人类的已有经验和知识发明创造来进行,是一件很了不起的事情”

2014年去哪网校园招聘相关推荐

  1. 2014年去哪儿网校园招聘笔试题

    已知字母序列[d, g, e, c, f, b, o, a],请实现一个函数针对输入的一组字符串 input[] = {"bed", "dog", " ...

  2. 2014去哪儿网校园招聘笔试(10.13北京)

    三道大题+两题TestCase 编程题 Q1:实现一个字符串反转,规则如下: 输入一个字符串str,一个分隔符delim,要求实现对分隔符之间的字符串做反转操作,但是其内部顺序不变. 接口: stri ...

  3. 2015去哪儿网校园招聘笔试题:寻找字符串的差异

    哪儿的一道笔试题. 给定两个字符串a,b:找出两个字符串中不一样的字符串.如存在于a而不存在于b,则将该字符输出,同时.加一个"-"标记:若存在于b而不存在于a,则输出该字符,同时 ...

  4. 去哪儿网校园招聘笔试题(成都)--之一

    描述: 已知字母序列[d, g, e, c, f, b, o, a],请实现一个函数针对输入的一组字符串 input[] = {"bed", "dog", &q ...

  5. 2014年去哪儿网笔试题--给定一个整型数组,对这个整型素组排序,使得按序拼接数组各元素得到的值最小

    2014年去哪儿网笔试题--给定一个整型数组,对这个整型素组排序,使得按序拼接数组各元素得到的值最小. 我的大致思路是把这个整型数组转换成String数组,然后通过String类的compareTo方 ...

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

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

  7. 谷歌2014年中国区应届毕业生校园招聘B轮机试第一题——数独问题的解法(C++实现)

    今天做了一下谷歌2013年校园招聘第二轮机试题,自己独立把程序写出来并且调试通过. 原题网址:https://code.google.com/codejam/contest/2929486/dashb ...

  8. 2014美图网校园招聘Android实习工程师笔试试卷详解

    好久没写博客了,说好了要好好些博客的额,但是就是各种事情,也许都是借口吧,其实是自己太懒了,然后还是老毛病,不懂得抓紧时间,专注力不够,没有计划.剩下不到几天了,往前看,抓紧了! 就写一些我认为对大家 ...

  9. 2014美团网校园招聘研发笔试题(长沙站)

    时间:2013-9-16 地点:长沙 职位:研发类,手机开发,前端,系统运维 感谢IT面试3群的爱尔兰咖啡分享 http://www.itmian4.com/forum.php?mod=viewthr ...

最新文章

  1. 部分 II. Network
  2. OpenGL ES 的例子
  3. linux文件和目录基本管理系统,Linux文件基本操作管理和系统目录结构
  4. 汇总常用的jQuery操作Table tr td方法
  5. 只能输入数字或含两位小数的正则
  6. 什么是服务器防护,什么是硬防?什么是软防?
  7. 用canvas画太极图(一步步详解附带源代码)
  8. argis加载tpk离线包
  9. 国家取消职称英语与计算机,全国职称英语考试取消
  10. D语言(dlang)编写单片机(cortex-m系列)应用需要用到的技巧
  11. Unity利用JsonFX解析Json格式文本
  12. QT项目负责人必须掌握的Ui设计师功能——Promote to !
  13. sap清账使用反记账_【转】SAP反记账功能祥解
  14. 工程师必看:常见的PCB检测方法有哪些?
  15. java atm程序设计_Java ATM机操作界面程序哦
  16. Chatbot项目的剖析
  17. 美国顶级在线教育平台泄露22TB数据
  18. 【Python】京东消费行为数据分析可视化实战案例
  19. 关于Cause: java.sql.SQLException: The server time zone value 的解决办法
  20. 中兴远航10 root获取 ZTE 7530N 刷机magisk 刷机包TWRP下载安装LS框架

热门文章

  1. “三峡大坝能防万年一遇的洪水”,”中国反应堆厂房抗万年一遇地震“?
  2. 安卓虚拟机VMOS_1.4.0绿化版
  3. 网页点击跳转到微信页面
  4. 关于 typescript 里面的 分布式条件类型
  5. 背包问题算法实现(全组合、暴力递归、动态规划及空间压缩、对数器)
  6. xml文档读取-SAX
  7. android使用sax解析xml
  8. 移动渗透测试(dozer,adb,夜神模拟器)
  9. 苹果维修日期计算机,我的苹果笔记本在官网怎么查不到生产日期提示日期的地方显示2.4 2.2GHz啥意思,...
  10. Ventuz6之模型动画节点[Animation Rig]