复制文件,并实现字符间插入空格(无空格单词本的单词与词性的分隔)

复制文件,并实现字符间插入空格

背景

  背单词的时候,朋友搞了个单词本,用word的查询功能去掉了所有空格,然后单词和词性就连在一起了,就像这样:

markedadj.显著的,明显的

  我想着利用IO流,里面写点儿小东西,实现辨认出词性,并分隔的方法,最终呈现这样的:

marked adj.显著的,明显的

  这里面有空格的啊😀😀😀😀
  另外,如果觉得单词和词性空格短,自己改改抽出来的方法那儿的空格数量就好了

关于IO流

  这玩意儿我就不说了,太基础的东西了我这里用的是字符流,编码格式没有做配置,同志们如果瞧得起我,用了这段代码,记得把TXT的文件编码与IDEA的编码保持一致就行了,其他没啥交代的,废话不多说,直接上代码…

代码实现

package com.interest;

import java.io.*;

public class CopyUtils {
    public static void main(String[] args) {
        try {
            BufferedReader br = new BufferedReader(new FileReader("C:\\Users\\Administrator\\Desktop\\source.txt"));
            BufferedWriter bw = new BufferedWriter(new FileWriter("C:\\Users\\Administrator\\Desktop\\target.txt"));

            String line;
            while ((line = br.readLine()) != null) {
                String lineNew = line;
                if (line.contains(".")) {
                    String sFirst = line.split("\\.")[0];
                    String sFirstNew = null;
                    switch (sFirst){
                        case "\\.n":
                    }
                    if (sFirst.endsWith("n")) {
                        sFirstNew = getString(sFirst, "n");
                    } else if (sFirst.endsWith("v") && !sFirst.endsWith("adv")) {
                        sFirstNew = getString(sFirst, "v");
                    } else if (sFirst.endsWith("adj")) {
                        sFirstNew = getString(sFirst, "adj");
                    } else if (sFirst.endsWith("adv")) {
                        sFirstNew = getString(sFirst, "adv");
                    } else if (sFirst.endsWith("vt")) {
                        sFirstNew = getString(sFirst, "vt");
                    } else if (sFirst.endsWith("prep")) {
                        sFirstNew = getString(sFirst, "prep");
                    } else if (sFirst.endsWith("conj")) {
                        sFirstNew = getString(sFirst, "conj");
                    } else if (sFirst.endsWith("ad")) {
                        sFirstNew = getString(sFirst, "ad");
                    } else if (sFirst.endsWith("vi")) {
                        sFirstNew = getString(sFirst, "vi");
                    }
                    lineNew = sFirstNew;
                    for (int i = 1; i < line.split("\\.").length; i++) {
                        lineNew += line.split("\\.")[i];
                    }
                    if (sFirstNew == null) {
                        lineNew = line;
                    }
                }
                bw.write(lineNew);
                bw.newLine();
            }
            br.close();
            bw.close();
        } catch (
                IOException e) {
            e.printStackTrace();
        }
    }

    private static String getString(String sFirst, String suffix) {
        String sFirstNew;
        int length = sFirst.length();
        String sWord = sFirst.substring(0, length - suffix.length());
        sFirstNew = sWord + "  " + suffix + ".";
        return sFirstNew;
    }
}

效果

source:

objectivenessn.客观,客观性
objectivityn.目的;目标;宗旨;n.客观性,客观现实
distrustvt.不信任;怀疑 n.不信任,猜疑;疑惑,不相信
mistrustedv.不信任( mistrust 的过去式和过去分词 )
trustn.(in)信任;责任;托拉斯 v.希望,信任
criticaladj.决定性的;苛求的;评论(性)的
criticallyadv.批判性地;苛求地;危急地;严重地
hypocriticaladj.虚伪的
criticizev.评论,评价;批评,批判
immediateadj.立即的;直觉的;目前的 adv.立即,立刻

target:

objectiveness n.客观,客观性
objectivity n.目的;目标;宗旨;n客观性,客观现实
distrust vt.不信任;怀疑 n不信任,猜疑;疑惑,不相信
mistrusted v.不信任( mistrust 的过去式和过去分词 )
trust n.(in)信任;责任;托拉斯 v希望,信任
critical adj.决定性的;苛求的;评论(性)的
critically adv.批判性地;苛求地;危急地;严重地
hypocritical adj.虚伪的
criticize v.评论,评价;批评,批判
immediate adj.立即的;直觉的;目前的 adv立即,立刻

ps

  我估摸着我词性写的不够,也就打个样,反正抽出来方法了,谁愿意用,在判断里加上就好了,代码懒得优化了,一堆else if方便小白看,毕竟大神也用不到我这段代码,哈哈哈哈哈

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值