gpt4 book ai didi

java - 在文件中的每个单词后添加空格 (Java)

转载 作者:行者123 更新时间:2023-12-02 01:33:12 25 4
gpt4 key购买 nike

我想在文件中的每个单词后面添加一个空格E.G thisisatest 变成这是一个测试

我能够使用 .write 在文件末尾添加一个空格

这是我用来添加空格的代码

try {
String filename = "test.txt";
FileWriter fw = new FileWriter(filename,true);
fw.write(" ");
fw.close();
} catch(IOException ioe)
{
System.err.println("IOException: " + ioe.getMessage());
}

这是我用来查找单词的代码

 try {
File file = new File(WORD_FILE);
Scanner scanner = new Scanner(file);
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
for(String word : line.split("\\s")) {
if (!word.isEmpty())
System.out.println(word);
}
}
scanner.close();
} catch (FileNotFoundException e) {
System.out.println("File not found.");
}

它在文件末尾添加了一个空格,但我希望它做的是在每个单词后添加一个空格

最佳答案

需要单独读取和写入,因为无法在打开的文件上插入,只需像您一样附加即可。

String filename = "test.txt";
Charset charset = Charset.defaultCharset(); // StandardCharsets.UTF_8
Path path = Paths.get(filename);
List<String> lines = Files.lines(path, charset)
.map(line -> line.replaceAll("\\s+", "$0 "))
.collect(Collectors.toList());
Files.write(path, lines, charset);

这里我将这些行读为 Stream<String>单行。我替换空格 \\s+相同加上一个额外的空格。

但是,要将“thisisatest”拆分为单词,您需要英语知识。

    .map(line -> replaceWords(line))

List<String> allWords = Arrays.asList(
"are", "a",
"island", "is",
"tests", "test",
"thistle", "this", "th" /*5th*/
);

String replaceWords(String line) {
StringBuilder sb = new StringBuilder();
... loop through letter sequences (multiple words)
... and split them by sorted dictionary.
return sb.toString();
}

由于这看起来像是家庭作业,或者至少应该保留一些有趣的努力,剩下的就取决于你了。

关于java - 在文件中的每个单词后添加空格 (Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55709040/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com