用java替换txt里的文字
程序员文章站
2022-06-01 23:52:29
...
最近看烟雨江南的《罪恶之城》感觉不错,就下载个txt在本地看,没想到里面的章节名格式很特殊啊,例如应该是“第八章”吧,这个文件里就是“章八”,应该是“第二十八章”,就是“章二十八”,这样一来我用的九一阅读器就无法自动生成章节目录了。。。所以就自己写了java小程序来替换下~~
先看代码
package song; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; public class IoReader { private File file; private File tempFile; //private char[] number={'零','一','二','三','四','五','六','七','八','九','十'}; private String num= "零一二三四五六七八九十"; public IoReader(String in,String out) throws IOException{ file = new File(in); tempFile= new File(out); FileInputStream fis= new FileInputStream(file); FileOutputStream fos = new FileOutputStream(tempFile); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(fos)); BufferedReader buffer= new BufferedReader(new InputStreamReader(fis)); String s = ""; System.out.println("转换ing..."); while((s=buffer.readLine())!=null){ bw.write(Relp2(s)); bw.newLine(); } System.out.println("OK"); bw.close(); fos.close(); buffer.close(); fis.close(); } /*private String Relp(String str){ if(str.startsWith("章")) { String[] s = str.split(" "); if(s[0].length()>0&&s[0].charAt(0)=='章') { StringBuffer sb = new StringBuffer(); sb.append("第"); sb.append(s[0].substring(1, s[0].length())); sb.append("章"); sb.append(" "+s[1]); return sb.toString(); } } return str; }*/ private String Relp2(String str){ if(str.trim().startsWith("章")) { StringBuffer sb = new StringBuffer(str.trim()); sb.replace(0, 1, "第"); int i = 1; int index; while(i<sb.length()){ index = sb.charAt(i); if(num.indexOf(index)!=-1) i++; else break; } sb.insert(i, "章"); return sb.toString(); } return str; } }
很简单io流操作啊,就是替换的时候出了些错误,注释的那部分是最早想的方法,因为一般的章节名就像这样“章二十四 若在冬季”。用空格分割下,然后再结合一起就行了,但。。。总有例外,例如,有的就是第几章,而作者并没有给章节起名字如“章三十四”。所以报错!!!
中间犯了个有点二的错误,写private String num= "零一二三四五六七八九十";时,我居然忘了在里面加上“十”,可以想象转换后的章节是什么样的。。。
在我电脑上,我转换《罪恶之城》共用时228毫秒~~
package song; import java.io.IOException; public class Main { /** * NortherSong * @param args */ public static void main(String[] args) { String url = "E:\\19348.txt"; String out ="e:/b.txt"; try { Long star = System.currentTimeMillis(); IoReader ir = new IoReader(url,out); Long end = System.currentTimeMillis(); System.out.println("用时: 《"+(end-star)+"》 毫秒"); } catch (IOException e) { e.printStackTrace(); } } }
最后罪恶之城分享给大家
上一篇: python 文件操作
下一篇: BMP文件读取修改保存_画图板_缓冲绘图
推荐阅读
-
将Word正文中所有指定文字用一个代表文字的图片进行替换
-
用PhotoShop中的涂抹工具快速替换图片中的文字
-
键盘录入一个文件夹路径,统计该文件夹(包含子文件夹)中每种类型的文件及个数,注意:用文件类型(后缀名,不包含.(点),如:"java","txt")作为key, 用个数作为value,放入到map集
-
键盘录入一个文件夹路径,统计该文件夹(包含子文件夹)中每种类型的文件及个数,注意:用文件类型(后缀名,不包含.(点),如:"java","txt")作为key, 用个数作为value,放入到map集
-
5.键盘录入一个文件夹路径,统计该文件夹(包含子文件夹)中每种类型的文件及个数,注意:用文件类型(后缀名,不包含.(点),如:"java","txt")作为key,
-
键盘录入一个文件夹路径,统计该文件夹(包含子文件夹)中每种类型的文件及个数,注意:用文件类型(后缀名,不包含.(点),如:"java","txt")作为key
-
统计英文字符串里重复次数最多的单词JAVA
-
将Word正文中所有指定文字用一个代表文字的图片进行替换
-
用PhotoShop中的涂抹工具快速替换图片中的文字
-
用java替换txt里的文字