java - 如何将一个文本拆分为多个文本文件

标签 java file

我有以下文本:

1
(some text)
   /
2
(some text)
       /
.
.
    /
8519
(some text)

我想将此文本拆分为多个文本文件,其中每个文件在文本之前都有数字的名称,即 (1.txt, 2.txt )等等,该文件的内容将是文本。

我尝试了这段代码

BufferedReader br = new BufferedReader(new FileReader("(Path)\\doc.txt"));
try {
    StringBuilder sb = new StringBuilder();
    String line = br.readLine();
    while (line != null) {
        sb.append(line);
        // sb.append(System.lineSeparator());
        line = br.readLine();
    }
    String str = sb.toString();
    String[] arrOfStr = str.split("/");
    for (int i = 0; i < arrOfStr.length; i++) {
        PrintWriter writer = new PrintWriter("(Path)" + arrOfStr[i].charAt(0) + ".txt", "UTF-8");
        writer.println(arrOfStr[i].substring(1));
        writer.close();
    }
    System.out.println("Done");
} finally {
    br.close();
}

此代码适用于文件 1-9。但是,由于我采用了字符串中的第一个数字 (arrOfStr [i].charAt(0)),文件 10-8519 出现了问题,我知道我的解决方案还不够,有什么建议吗?

最佳答案

除了我的评论之外,考虑到前导整数和第一个单词之间没有空格,第一个空格处的子字符串不起作用。

这个问题/答案有一些应该有所帮助的选项,在我看来,使用正则表达式 (\d+) 的选项是最简单的选项,复制如下。

Matcher matcher = Pattern.compile("\\d+").matcher(arrOfStr[i]);
matcher.find();
int yourNumber = Integer.valueOf(matcher.group());

Given a string find the first embedded occurrence of an integer

关于java - 如何将一个文本拆分为多个文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49564233/

相关文章:

java - Maven Webservice 插件适用于安装,而不是部署

Git 撤消某些文件中的更改

file - 更改批处理文件中文本的字体和大小

java - Spring 形式 : BindException when submiting large list of objects

java - Jsoup 元刷新重定向

c - 扫描c中文件夹中的每个文件

c - 使用文件处理在 C 中加密消息

java - 将 URL 转换为普通的 windows 文件名 Java

java - 尝试从另一个不工作的 ArrayList 中过滤

java - android http URL 连接适用于 https,不适用于 http