java - 要计算给定行字符串中字符出现的次数。谁能指出错误在哪里?代码编译正确

标签 java recursion count

这个想法是计算用户输入的给定字符在用户输入的一行字符串中出现的次数。这个想法是在 Java 中使用递归而不是某种循环。代码可以正确编译并正确运行。但结果没有给出正确的答案(在给定的字符串行中没有正确计算所询问的字符。)有人能指出吗?

import java.util.Scanner;

public class numberOfLetters {

    public static int letterCounter(String line, String x) 
    {
        if(line.isEmpty())
        {
            return 0;
        }
        else 
        {
            if(line.charAt(0) == 'x')
            {
                return 1 + letterCounter(line.substring(1), x);
            }
            else 
            {
                return 0 + letterCounter(line.substring(1), x);
            }
        }
    }   

    public static void main(String[] args)
    {
        Scanner keyboard = new Scanner(System.in);      

        System.out.println("Enter a line of a string >_ ");
        String inputLine = keyboard.nextLine();

        System.out.println("Enter the character to count >_ ");
        String charac = keyboard.nextLine();        

        int count = letterCounter(inputLine, charac);

        System.out.println("The number of '"+ charac + "' in the input '"+ inputLine + "' is "+ count);
        keyboard.close();
    }
}

最佳答案

您正在测试“x”而不是变量:

if(line.charAt(0) == 'x')

你需要:

if(line.charAt(0) == x)

还将 x 作为字符而不是字符串传递。

关于java - 要计算给定行字符串中字符出现的次数。谁能指出错误在哪里?代码编译正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30538499/

相关文章:

java - 将数字和小数四舍五入到最接近的百位

java - 服务器从无限 while 循环终止?

javascript - 从 JavaScript 数组递归构建 JSON

JavaScript 如何限制 JSON.stringify 中的递归深度

mysql - JOIN 中的多个 COUNT()

java - SAX 解析异常 : The prefix "xsi" for attribute "xsi:schemaLocation" is not bound

java.net.SocketException : Connection reset error while html parse with Jsoup

python - 配置字典中的继承

sql - 通过sql对分区计数不同

php - 从表中选择数据,其中 COUNT 列从最大到最小