Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在文件中的每个单词后添加空格(Java)_Java_File_Whitespace - Fatal编程技术网

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

在文件中的每个单词后添加空格(Java),java,file,whitespace,Java,File,Whitespace,我想在文件中的每个单词后添加一个空格 这是一个测试 我可以使用.write在文件末尾添加一个空格 这是我用来添加空格的代码 try { String filename = "test.txt"; FileWriter fw = new FileWriter(filename,true); fw.write(" "); fw.close(); } catch(IOException ioe) { System.err.println("IOExcep

我想在文件中的每个单词后添加一个空格 这是一个测试

我可以使用.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.");
   }

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

您遇到的问题是扫描器读取所谓的
标记
,而对于分隔标记,扫描器使用
分隔符
。默认分隔符是
空白

所以,无论您将如何解决您的问题,您都需要有一个分隔符,用于分隔您所称的单词。准确地说,我将其称为
令牌

通过调用
scanner.useDelimiter(“,”/),例如使用逗号


使用BufferedReader时,需要按String.split()拆分读取行,这允许您指定自定义分隔符作为参数。

以下是一些帮助您找到解决问题的方法的示例:

您遇到的问题是扫描器读取所谓的
标记
,而对于分隔标记,扫描器使用
分隔符
。默认分隔符是
空白

所以,无论您将如何解决您的问题,您都需要有一个分隔符,用于分隔您所称的单词。准确地说,我将其称为
令牌

通过调用
scanner.useDelimiter(“,”/),例如使用逗号


当您使用BufferedReader时,您需要按String.split()分割读取行,这也允许您指定自定义分隔符作为参数。

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

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);

因为这看起来像是家庭作业,或者至少还有一些有趣的工作要做,剩下的就看你了。

一个人需要单独读写,因为他不能插入一个打开的文件,只需要像你那样附加

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);


由于这看起来像是家庭作业,或者至少还有一些有趣的工作要做,剩下的就由您决定了。

您需要读取整个文件并将其写回文件系统。请解决您的问题。首先识别单词,然后添加空格。好吧,如果你有这样做的代码,你应该在你的问题中共享该代码-而不是在文件中添加空格的代码,因为这与你的问题无关。请回答您的问题并显示您当前的代码。这令人困惑。您可以通过在空格上拆分来读取原始文件中的单词。这意味着它们之间已经有了空间。这是一个非常重要的练习。例如,你将如何解析“thesearedear?”是“thesearedear”还是“TheSear ear”?后者没有意义,但所有这些都是有效的词。因此可能需要某种形式的人工智能。一旦所有单词都被正确识别,通过在边界上拆分并在单词之间插入一个空格,实际添加一个空格是很简单的。您需要读取整个文件并将其写回文件系统。解决您的问题。首先识别单词,然后添加空格。好吧,如果你有这样做的代码,你应该在你的问题中共享该代码-而不是在文件中添加空格的代码,因为这与你的问题无关。请回答您的问题并显示您当前的代码。这令人困惑。您可以通过在空格上拆分来读取原始文件中的单词。这意味着它们之间已经有了空间。这是一个非常重要的练习。例如,你将如何解析“thesearedear?”是“thesearedear”还是“TheSear ear”?后者没有意义,但所有这些都是有效的词。因此可能需要某种形式的人工智能。一旦所有单词都被正确识别,通过在边界上拆分并在单词之间插入空格,实际添加空格就变得微不足道了。OP想要变魔术,请参见第一行的结尾:例如,ThisisTest变为Thisis test。我尽了最大努力解释做这个练习需要做什么。另外,另一个答案也不起作用,因为它需要知道所有的单词…OP想要魔法,请看第一行的结尾:例如,ThisisTest变成了Thisisa test。我尽力解释做这个练习需要什么。另外,另一个答案也不起作用,因为它需要知道所有的单词…只是出于我个人的兴趣:你的解决方案有面向性能的方法吗?因为用您的解决方案解决任何问题都需要了解“所有”单词,我想知道如何在Java中实现这一点,以提高性能?我更愿意立即了解自然语言处理框架(用于单词词干等)。但是免费字典是存在的,一个带字母的树是可行的:
-(a(-,r(e(-)),i(s(-,l(a(n(d))),…)
。只是出于我个人的兴趣:你的解决方案有面向性能的方法吗?因为解决任何问题都需要知道“所有”words,我想知道如何在Java中实现这一性能?我宁愿立即查看自然语言处理框架(用于词干分析等)。但是免费字典存在,一个带字母的树是可行的:
-(a(-,r(e(-),I(s(-,l(a(n(d)))),…)