JAVA/文件/删除字符串

【问题描述】

编写程序将一个指定文件中给定字符串删除。假设给定的字符串长度不超过20,文件中每行的字符数不超过100。要求:给定的字符串大小写无关。

【输入形式】

给定文件名为filein.txt。从标准输入中输入要删除的字符串(不含空格)。

【输出形式】

将删除后的结果输出到文件fileout.txt中。

【样例输入】

从标准输入中输入要删除的字符串:

in
文件filein.txt的内容为:

#include <stdio.h>
void main()
{
    FILE * IN;
    if((IN=fopen("in.txt","r"))==NULL)
    {
       printf("Can&rsquo;t open in.txt!");
       return;
    }
    fclose(IN);
}

【样例输出】

文件fileout.txt的内容应为:

#clude <stdio.h>
void ma()
{
    FILE * ;
    if((=fopen(".txt","r"))==NULL)
    {
       prtf("Can&rsquo;t open .txt!");
       return;
    }
    fclose();
}

【样例说明】

输入的要删除的字符串为in,即将文件filein.txt中所有出现的in字符串(包括iN、In、IN字符串)删除,然后将删除后的文件内容输出保存在文件fileout.txt中。

【样例代码】

import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class DeleteStr {
	static final Scanner sc = new Scanner(System.in, "UTF-8");
	public static void main(String[] args) throws UnsupportedEncodingException {
		String str = sc.next();
		File rf = new File("filein.txt");
		File wf = new File("fileout.txt");
		String line;
		List<String> content = new ArrayList<String>();
		try {
			FileReader fr = new FileReader(rf);
			BufferedReader bf = new BufferedReader(fr);
			try {
				line = bf.readLine();
				while (line != null) {
					Pattern p = Pattern.compile(str, Pattern.CASE_INSENSITIVE); //创建一个格式对象:str的格式忽视大小写
					Matcher matcher = p.matcher(line); //用格式对象创建一个匹配器:对line的数据进行匹配
					line = matcher.replaceAll("");  //用匹配器来实现替换
					content.add(line);
					line = bf.readLine();
				}
				FileWriter fw = new FileWriter(wf);
				BufferedWriter bw = new BufferedWriter(fw);
				for (String item : content) {
					bw.write(item); //写数据
					bw.newLine(); //跳到下一行
				}
				bw.flush();
				bw.close();
				bf.close();
				fr.close();
				fw.close();
			} catch (IOException e) {
				System.out.println("操作失败");
			}
		} catch (FileNotFoundException e) {
			System.out.println("没有找到该文件");
		}

	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

自律最差的编程狗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值