【问题标题】:count words in in returning character numbers instead of words在返回字符数而不是单词中计算单词
【发布时间】:2017-08-27 19:59:21
【问题描述】:

该程序旨在告诉我文件中有多少个单词,但它给了我非常高的数字。暗示它读取的是字符数而不是单词数,或者是单独的逻辑错误。

package wordinspection;

import java.io.*;
import java.util.*;

public class WordInspection {
private Scanner reader;
private File file;

public WordInspection(File file) {
    this.file = file;
}

public int wordCount() {
  String words = readFile();
    System.out.println(words);
    words.split("\\s+");
  return words.length();
}

public String readFile() {
    try {
        String str = "";

        Scanner reader = new Scanner(file, "UTf-8");

        while (reader.hasNextLine()) {
            str += reader.nextLine();
            str += "\n";
        }

        return str;
    } catch (FileNotFoundException e) {

        System.out.println("Does nothing");
        return "";

    }

}

【问题讨论】:

  • 我有文件,是普通的文本文件。

标签: java string file


【解决方案1】:

words.split("\\s+"); 不修改words;它只是返回一个新数组。您忽略了返回值并在原始字符串上调用 length()。将其更改为:

return words.split("\\s+").length;

【讨论】:

    【解决方案2】:

    string.split() 返回一个字符串数组 (http://docs.oracle.com/javase/8/docs/api/java/lang/String.html#split-java.lang.String-)

    public int wordCount() {
       String str = readFile();
       System.out.println(str);
       String[] words = str.split("\\s+");
       return words.length;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多