这个想法是计算用户输入的给定字符在用户输入的一行字符串中出现的次数。这个想法是在 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/