我应该有两个输入:一个是字符,另一个是字符串。
我必须编写一个程序来输出字符在字符串中出现的次数。
最后,我已经能够让程序显示字符输入在字符串中出现的适当次数。
然而,问题是,如果需要的话,我必须能够输出输入字符的复数形式。我不知道我在这里做错了什么,但有时它会使一些不应该是复数的东西…基本上,如果这个单词中有0n,它应该显示0n...但它显示的是0n。
如果我的描述很糟糕,很抱歉。
import java.util.Scanner;
public class LabProgram {
public static void main(String[] args) {
Scanner scnr = new Scanner (System.in);
char userLetter;
String userWord;
userLetter = scnr.next().charAt(0);
userWord = scnr.nextLine();
int wordCount = 0;
for (int i = 0; i < userWord.length(); i=i+1) {
if (userWord.charAt(i) == userLetter){
wordCount = wordCount + 1;
}}
if (wordCount < 2) {
System.out.println(wordCount + " " + userLetter);
}
else if (wordCount == 0) {
System.out.println(wordCount + " " + userLetter);
}
else {
System.out.println(wordCount + " " + userLetter + "'s");
}
}
}发布于 2021-07-04 16:33:19
我尝试了一些建议的解决方案,但它们对我不起作用,我设法找到了另一个可能符合您意图的解决方案:
public static void main(String[] args) {
Scanner scnr = new Scanner(System.in);
System.out.print("Enter the word: ");
String userWord = scnr.nextLine();
System.out.print("Enter the letter: ");
String userLetter = scnr.nextLine();
List<Character> chars = userWord.chars().mapToObj(c -> (char) c).collect(Collectors.toList());
Character targetChar = userLetter.charAt(0);
final int frequency = Collections.frequency(chars, targetChar);
if (frequency < 2) {
System.out.println(frequency + " " + userLetter);
}
else if (frequency == 0) {
System.out.println(frequency + " " + userLetter);
}
else {
System.out.println(frequency + " " + userLetter + "'s");
}
scnr.close();
}https://stackoverflow.com/questions/68240751
复制相似问题