Java 让程序计算用户通过文本文件输入的字符总量

Java 让程序计算用户通过文本文件输入的字符总量,java,class,methods,char,Java,Class,Methods,Char,我的示例文本: 此文件包含184个字符。 最常见的字母是“E”。 -File-Includes-2-Upper-Case-occurrences 和-22-小写-出现-“E”。 事件总数为24 我使用的示例字母是“e” 我的代码: import java.io.*; import java.util.Scanner; public class Homework4a { public static void main(String[] args) throws IOException {

我的示例文本:

此文件包含184个字符。 最常见的字母是“E”。 -File-Includes-2-Upper-Case-occurrences 和-22-小写-出现-“E”。 事件总数为24

我使用的示例字母是“e”

我的代码:

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

 public class Homework4a
 {
public static void main(String[] args) throws IOException
{
    Scanner keyboard = new Scanner(System.in);
    System.out.println("Enter name of the input file: ");
    String fileName = keyboard.nextLine();
    System.out.println("Enter letter: ");
    char letter = keyboard.nextLine().charAt(0);
    File file = new File(fileName);
    Scanner scan = new Scanner(new FileReader(file));
    try
    {

            char lowerCaseLetter = (new Character(letter)).toString().toLowerCase().charAt(0);
            char upperCaseLetter = (new Character(letter)).toString().toUpperCase().charAt(0);
            int lowerCounter=0;
            int upperCounter = 0;

        while(scan.hasNextLine())
        {
            String input = scan.nextLine();

            for(int i=0; i<input.length(); i++)
            {
                if(input.charAt(i)== lowerCaseLetter)
                {
                    lowerCounter++;
                }
                else if(input.charAt(i)== upperCaseLetter)
                {
                    upperCounter++;
                }

            }
        }
            int totalLowerCounter = lowerCounter;
            int totalUpperCounter = upperCounter;
            int totalCounterSum = totalLowerCounter + totalUpperCounter;


            System.out.println("The lower-case letter " + lowerCaseLetter + " occurs " + totalLowerCounter + " times");
            System.out.println("The upper-case letter " + upperCaseLetter + " occurs " + totalUpperCounter + " times");
            System.out.println("The total number of occurrences (\"" + lowerCaseLetter + "\" and \"" + upperCaseLetter +
                        "\") is " + (totalCounterSum));

    }
    finally
    {
        scan.close();
    }
}
 }
import java.io.*;
导入java.util.Scanner;
公共课家庭作业4a
{
公共静态void main(字符串[]args)引发IOException
{
扫描仪键盘=新扫描仪(System.in);
System.out.println(“输入输入文件的名称:”);
字符串文件名=keyboard.nextLine();
System.out.println(“输入字母:”);
字符字母=键盘.nextLine().charAt(0);
文件=新文件(文件名);
扫描仪扫描=新扫描仪(新文件读取器(文件));
尝试
{
char lowerCaseLetter=(新字符(字母)).toString().toLowerCase().charAt(0);
字符大写字母=(新字符(字母)).toString().toUpperCase().charAt(0);
int lowerCounter=0;
int upperCounter=0;
while(scan.hasNextLine())
{
字符串输入=scan.nextLine();

对于(inti=0;i我将给你一些建议。我最好的建议是使用分治:

  • 从用户输入获取文件名(您已经知道)
  • 读取文本文件(签出并删除)
  • 请记住,a基本上只是一个
    int
    ,请查找
  • 因此,您可以使用一个数组(
    int[]
    ),其中索引是ASCII值,值是出现的次数
  • 检查文件的内容,并相应地添加到数组中

基本上,“分而治之”就是把一项任务分解成最小的问题,然后分别处理。通过这种方式分解任务,即使是相当复杂的问题也会归结为容易解决的小问题


还有一点很好,就是一旦你把它分解成这样,你就可以继续为每个子任务编写一个方法。这样,你就可以“免费”得到一个组织得很好的代码。

下面是你可以从文本文件中找到字母计数的代码。我推了一个harcoded字母“a”,你也可以将其更改为动态

导入java.io.*; 导入java.util.Scanner

public class CountTheNumberOfAs {
    public static void main(String[] args)throws IOException
    {

        String fileName = "JavaIntro.txt";
        String line = "";
        Scanner scanner = new Scanner(new FileReader(fileName));
        try {

          while ( scanner.hasNextLine() ){
            line = scanner.nextLine();
            int counter = 0;

            for( int i=0; i<line.length(); i++ ) {
                if( line.charAt(i) == 'a' ) {
                    counter++; 

                } 


            }

             System.out.println(counter);   
          }
        }
        finally {

          scanner.close();


    }}}
公共类计数{
公共静态void main(字符串[]args)引发IOException
{
字符串fileName=“JavaIntro.txt”;
字符串行=”;
Scanner Scanner=新扫描仪(新文件读取器(文件名));
试一试{
while(scanner.hasNextLine()){
line=scanner.nextLine();
int计数器=0;

对于(int i=0;i我解决了问题,我需要将println置于循环之外。此代码可以帮助您读取文本文件并通过更改“if else”中的变量来查找特定字符声明到您需要在文本文件中找到的特定字符。然后计算有多少个小写和大写字母,以及它们的总数。

可能重复,我并不想粗鲁或无礼,但事实上,您的问题太宽泛了。具体问题是什么?我建议您这样做:使用divide和conquer(也就是说,将任务分成最小的部分,然后逐个处理)并查找各个需求。您应该在网上找到您需要的所有内容(搜索“read text file java”等)。然后再写一些代码。一旦遇到实际的、具体的问题,请回到这里。也就是说,请检查。基本上,你的问题是“你能帮我吗?”。请阅读。这将有助于你理解为什么人们对你的问题持否定态度。达内尔,请参阅我的答案,以获得正确方向的一些指示。此外,请参阅斯蒂芬C的评论。我仍然没有看到任何问题。鉴于上下文(某人正在做作业),这种回答是不合适的。抱歉,我只是提供帮助。我同意@StephenC的观点,不妨请求教授的电子邮件并将解决方案发送过来。你提供了错误的帮助。有点像“帮助”你的弟弟玩装有子弹的左轮手枪。