java 中读取文本时当遇到某个字符时自动换行的代码

例如读取没排序的文本,我想输出时遇到“{”时自动换行,求代码

//这帖子放了很久了,怎么还能在提问区看到啊...给你写个完整的吧!
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.io.UnsupportedEncodingException;
public class Day01_ReadTxt {
public static void main(String[] args) {
File file=new File("K:\\Test\\TestTxt.txt");//路径
if(file.canExecute())//如果存在就继续;
init(file);
}
private static void init(File file) {
System.gc();
BufferedReader br=null;
try {
br=new BufferedReader(new InputStreamReader(new FileInputStream(file),"GBK"));
for(String str=br.readLine();str!=null;str=br.readLine()) {
str=str.replaceAll("[{}]+", "\r\n");//正则替换;
System.out.print(str);//输出控制台
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
if(br!=null) {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-12-14
如果文本是字符串用
str=str.replaceAll("\\{","\\\n");
System.out.print(str);
如果是文本文件,用BufferedReader按行读出字符串后,用上面的语句输出
第2个回答  2018-12-14
这个很简单啊,比如你获得的文本叫str,你只需要
str = str.replace("{", "\n{");
这样就实现换行了追问

为什么这里没有换行啊?

追答

s = s.replace...
你都没有赋值,当然没变化了,string是不可变类,要赋值的,赋值!

追问

读取文件时,不是赋值了吗?本人小白,不好意思了,谢谢耐心回答

追答

哎。。。所谓赋值,是=
就是说你每次赋值都要用s=in.readLine()这么赋值一次,对吧
然后得到的s就再也不会发生变化了,比如你s.replace,只会返回一个新的对象,这时候你需要s=s.replace,把返回的对象赋值给s,这时候,s指向的已经是一个新的对象了(原来的对象并没有发生变化,这就叫不可变类)

第3个回答  2018-12-15
首先使用文件流读取文本,对读取到的每一行字符串用如下代码进行判定即可 Str.replace("{","{\n");
相似回答