繁体   English   中英

如何从命令行参数计算字符串中的字符出现次数 - Java

[英]How to count character occurrences in a string from command line arguments - Java

我需要计算在命令行中传递的字符串中字符的出现次数。 例如,如果我们传递一个句子“面包是湿的”,并且我们正在寻找字符“e”的出现,程序应该输出每个单词的出现“e”:1 1 0 1。

我是Java的新手,我想出的东西不起作用:

    public static void main(String[] args) {
        int count = 0;
        for (int i = 0; i < args.length; i++) {
            // System.out.println(args[i]+" ");
            if (args[i].charAt(i) == 'e') {
                count++;

            }
            System.out.println(count);
        }
    }

显然,args [i] .charAt(i)在这里是错误的,因为它看起来像是第一个单词的第一个字母。 但是,args.charAt(i)甚至不起作用。 我不知道如何解决这个问题并获得正确的输出。

要解决它,你需要有两个循环。

  • 一个用于遍历args数组
  • 第二个遍历参数中的字符

你现在正在做的你是拿i与代表争论的位置args[i]好),并用相同的i试图获取字符charAt(i)错误的)。

换句话说,对于第一个参数,您只检查第一个字符,第二个,第二个,...,对于n参数,检查该参数的n个字符。

为避免将来出现此类问题,请尝试使用更多功能,功能应侧重于单个问题

public static void countCharOccurence(String input, char search) {
    int cound = 0;
    for(int i=0; i< input.length; i++){
      if(search == input.getAt(i) {
        count++;
      }
    }
}

尝试在main方法中添加它。 祝好运。

像这样的东西(第一个循环遍历参数数组,第二个循环遍历特定参数):

int count = 0;
for(int i=0; i<args.length; i++ ){
    count = 0;
    for (int j = 0; j<args[i].length();j++){
        if (args[i].charAt(j) == 'e'){
        count++;

        }
    }
    System.out.println(count+" ");
}

你需要一个循环通过args [i]的第二个循环

public static void main (String[] args) {
        int count = 0;
        for(int i=0; i<args.length; i++ )
    {
        int count = 0;
        //System.out.println(args[i]+" ");
        String test = args[i];
        for(int j=0;j<test.length();j++)
        {
            if (args[i].charAt(j) == 'e'){
                count++;
            }


        }
        System.out.println(count);

    }

            }

你需要这样做......

       public static void main(String ar[]) 
        for(String a:ar)
         {
        char b[] = a.toCharArray();

           for(char c:b)
           {
               if(c='e')
                {
                        // do some code
                }
            }  

            }  

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM