当前位置: 首页 > 面试题库 >

计算文件中的字符,单词和行数

袁奇玮
2023-03-14
问题内容

这应该将行数,单词数和字符数计入文件中。

但这是行不通的。从输出中仅显示0

码:

public static void main(String[] args) throws IOException {
    int ch;
    boolean prev = true;        
    //counters
    int charsCount = 0;
    int wordsCount = 0;
    int linesCount = 0;

    Scanner in = null;
    File selectedFile = null;
    JFileChooser chooser = new JFileChooser();
    // choose file 
    if (chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
        selectedFile = chooser.getSelectedFile();
        in = new Scanner(selectedFile);         
    }

    // count the characters of the file till the end
    while(in.hasNext()) {
        ch = in.next().charAt(0);
        if (ch != ' ') ++charsCount;
        if (!prev && ch == ' ') ++wordsCount;
        // don't count if previous char is space
        if (ch == ' ') 
            prev = true;
        else 
            prev = false;

        if (ch == '\n') ++linesCount;
    }

    //display the count of characters, words, and lines
    charsCount -= linesCount * 2;
    wordsCount += linesCount;
    System.out.println("# of chars: " + charsCount);
    System.out.println("# of words: " + wordsCount);
    System.out.println("# of lines: " + linesCount);

    in.close();
}

我不明白发生了什么事。有什么建议?


问题答案:

不同的方法。使用字符串查找行数,单词数和字符数:

public static void main(String[] args) throws IOException {
        //counters
        int charsCount = 0;
        int wordsCount = 0;
        int linesCount = 0;

        Scanner in = null;
        File selectedFile = null;
        JFileChooser chooser = new JFileChooser();
        // choose file 
        if (chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
            selectedFile = chooser.getSelectedFile();
            in = new Scanner(selectedFile);
        }

        while (in.hasNext()) {
            String tmpStr = in.nextLine();
            if (!tmpStr.equalsIgnoreCase("")) {
                String replaceAll = tmpStr.replaceAll("\\s+", "");
                charsCount += replaceAll.length();
                wordsCount += tmpStr.split(" ").length;
            }
            ++linesCount;
        }

        //display the count of characters, words, and lines
        System.out.println("# of chars: " + charsCount);
        System.out.println("# of words: " + wordsCount);
        System.out.println("# of lines: " + linesCount);

        in.close();
    }

注意:
对于其他编码样式,请使用new Scanner(new File(selectedFile), "###");代替new Scanner(selectedFile);

###是需要设置的字符。引用这个和维基



 类似资料:
  • 问题内容: 我花了一些时间在规划如何使用Python计算文本文件中的某些元素。我已经学习Python几个月了,并且熟悉以下函数; raw_input open Split Lun Printing rsplit() 到目前为止,这是我的代码: 在这一点上,我不确定下一步该怎么做。我觉得最合乎逻辑的方法是先计算行数,计算每行中的单词数,然后计算每个单词中的字符数。但是我遇到的问题之一是试图一次执行所

  • 问题内容: 我认为我已经很好地理解了这一点,但我认为该陈述是错误的。怎么说包含空格,加1。 编辑: 我发现(感谢Blender)可以用更少的代码来做到这一点: 问题答案: 使用方括号,而不是括号: 或: 您也可以使用:

  • 本文向大家介绍Ruby中实现统计文件行数、单词数和字符数,包括了Ruby中实现统计文件行数、单词数和字符数的使用技巧和注意事项,需要的朋友参考一下 在Ruby中我们定义一个wc方法,用来统计文件中出现的文本行数、单词数和字符数,ruby代码程序如下:

  • 本文向大家介绍如何计算R中字符串中的单词数?,包括了如何计算R中字符串中的单词数?的使用技巧和注意事项,需要的朋友参考一下 句子中的单词数可以用于文本分析,因此,我们需要对它们进行计数。这可以是单个句子或多个句子。我们可以使用strsplit和sapply查找一个句子或多个句子中的单词数。 示例 请看以下句子作为向量-

  • 我一直在试图弄清楚如何计算句子每个单词中的元音和字符。例如 在句子 < code>hello : 5个字符,2个元音 <代码>有:5个字符,2个元音 。我见过完整句子做同样事情的代码。但不是一个字一个字地。 下面是我一直在做的编码 输入将全部。我很难弄清楚这一点。 在运行代码时,我没有得到元音计数。我能把句子分开。但元音计数没有发生。

  • 问题内容: 我正在编写一个程序,该程序对作为输入的文件中的所有行,单词和字符进行计数。 在某种程度上,代码还可以。 但是,我不知道如何计算文件中的“空格”。我的角色计数器仅计算字母,空格除外。 另外,在计算行数时,我正在绘制空白。 问题答案: 您可以只使用字符长度。 您可以使用方法按行拆分,结果的长度为行数。 但是,更好的方法是逐行读取文件: 现在,即使文件很大,该程序也可以运行。它一次最多不会在