用代码实现以下需求
(1)有如下字符串"If you want to change your fate I think you must come to the ujiuye to learn java"(用空格间隔)
(2)打印格式( 单词 = 出现的次数 ):
to=3
think=1
you=2
//…
(3)按照上面的打印格式将内容写入到D:\count.txt文件中(要求用高效流)
思路:先利用字符串方法分割字符串成字符串数组,然后利用map集合记录各单词出现的次数,最后遍历集合写入文本文件中。
特别注意,对类的命名不要和FileWriter一样。
代码:
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
/**
* @author Administrator
* 用代码实现以下需求
(1)有如下字符串"If you want to change your fate I think you must come to the ujiuye to learn java"(用空格间隔)
(2)打印格式( 单词 = 出现的次数 ):
to=3
think=1
you=2
//........
(3)按照上面的打印格式将内容写入到D:\\count.txt文件中(要求用高效流)
*/
public class StringFileWriter {
public static void main(String[] args) throws IOException {
//字符串存储
String s = "If you want to change your fate I think you must come to the ujiuye to learn java";
//定义正则表达式
String regex = "\\s";
//切割字符串
String[] ss =s.split(regex);
//定义map集合存储
Map<String, Integer> map = new HashMap<String, Integer>();
//循环判断存入集合
for (String s1 : ss) {
if (map.containsKey(s1)) {
map.put(s1, map.get(s1)+1);
}else {
map.put(s1, 1);
}
}
//定义高效缓冲字符流
FileWriter fw = new FileWriter("E:\\aa\\123.txt");
BufferedWriter bw = new BufferedWriter(fw);
//遍历map集合写入文件中
Set<String> set = map.keySet();
for (String s2 : set) {
Integer value = map.get(s2);
bw.write(s2+"="+value);
bw.newLine();
}
// System.out.println(map);
//关闭流
bw.close();
}
}
结果: