Java键盘输入

引言

在Java编程中,我们经常需要从键盘获取用户输入来解决实际问题。本文将介绍如何使用Java实现键盘输入,并通过一个实际问题的例子来演示。

键盘输入的基本原理

Java提供了一个标准库java.util.Scanner,用于从键盘读取用户输入。通过创建Scanner对象,我们可以使用它的方法来获取键盘输入的不同类型的数据。

解决实际问题

假设我们要编写一个程序,用于统计一篇文章中单词的出现频率。我们希望用户能够输入文章的内容,然后程序会输出每个单词及其出现的次数。

程序设计

首先,我们需要获取用户输入的文章内容。下面是一个示例代码:

import java.util.Scanner;

public class WordFrequencyCounter {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入文章内容:");
        String article = scanner.nextLine();
        scanner.close();
        
        // 统计单词频率的代码将在下面给出
    }

}

在上面的代码中,我们创建了一个Scanner对象来读取键盘输入。我们通过nextLine()方法获取用户输入的文章内容,并将其存储在article变量中。

接下来,我们需要编写代码来统计单词的出现频率。我们可以使用Map来存储单词及其出现的次数。下面是完整的代码:

import java.util.*;

public class WordFrequencyCounter {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入文章内容:");
        String article = scanner.nextLine();
        scanner.close();
        
        Map<String, Integer> wordFrequency = new HashMap<>();
        
        String[] words = article.split("\\s+");
        
        for (String word : words) {
            // 统计单词频率的代码
            if (wordFrequency.containsKey(word)) {
                wordFrequency.put(word, wordFrequency.get(word) + 1);
            } else {
                wordFrequency.put(word, 1);
            }
        }
        
        // 输出单词及其频率
        System.out.println("单词\t频率");
        System.out.println("----\t----");
        for (Map.Entry<String, Integer> entry : wordFrequency.entrySet()) {
            System.out.println(entry.getKey() + "\t" + entry.getValue());
        }
        
        // 绘制饼状图
        drawPieChart(wordFrequency);
    }
    
    private static void drawPieChart(Map<String, Integer> wordFrequency) {
        String chart = "```mermaid\n";
        chart += "pie\n";
        for (Map.Entry<String, Integer> entry : wordFrequency.entrySet()) {
            chart += entry.getKey() + ": " + entry.getValue() + "\n";
        }
        chart += "```";
        
        System.out.println(chart);
    }

}

在上面的代码中,我们使用HashMap来存储单词及其频率。通过split()方法,我们将文章内容拆分为单个单词,并存储在words数组中。然后,我们遍历words数组,并逐个统计每个单词的出现次数。

最后,我们输出每个单词及其频率,并调用drawPieChart()方法来绘制饼状图。

示例运行

下面是一个示例运行的截图:

请输入文章内容:
Hello world, hello Java. Hello world again!

单词   频率
----   ----
Hello  3
world  2
hello  1
Java   1
again  1

```mermaid
pie
Hello: 3
world: 2
hello: 1
Java: 1
again: 1

从上面的输出可以看出,我们成功地统计了文章中每个单词的出现频率,并绘制了对应的饼状图。

总结

本文介绍了如何在Java中实现键盘输入,并通过一个实际问题的例子演示了如何统计文章中单词的出现频率。使用Scanner类可以方便地从键盘读取用户输入,并使用Map来存储和处理数据。此外,我们还使用了markdown语法标识出了代码、表格以及饼状图。