Java 第一个字符在字符串中出现多少次

Java 第一个字符在字符串中出现多少次,java,string,for-loop,count,user-input,Java,String,For Loop,Count,User Input,我正在努力实现的目标: 编写一个程序,要求用户输入字符串。然后输出该字符串的第一个字母出现的次数。假设用户将输入一个包含所有大写字母的字符串。例如,如果用户输入“PETER PIPER拾取了一啄腌制辣椒”,则程序应输出“P发生9次” 到目前为止,我所拥有的: import javax.swing.JOptionPane; public class counterCharacter { public static void main(String[] args) { Strin

我正在努力实现的目标:

编写一个程序,要求用户输入字符串。然后输出该字符串的第一个字母出现的次数。假设用户将输入一个包含所有大写字母的字符串。例如,如果用户输入“PETER PIPER拾取了一啄腌制辣椒”,则程序应输出“P发生9次”

到目前为止,我所拥有的:

import javax.swing.JOptionPane;

public class counterCharacter {

  public static void main(String[] args)
  {
    String userInput = JOptionPane.showInputDialog("Input a string");
    int count = userInput.indexOf(0);
    for(int i =0; i < userInput.length(); i++)

        if(userInput.charAt(i) == 'a')  
          count++;
        System.out.println(count);
    }
}
import javax.swing.JOptionPane;
公共类反角色{
公共静态void main(字符串[]args)
{
String userInput=JOptionPane.showInputDialog(“输入字符串”);
int count=userInput.indexOf(0);
对于(int i=0;i
此代码的问题在于,它仅打印字符“a”,并且仅当它出现在索引点0中时才打印。我的任务是允许用户输入任何字符串,从用户输入的索引点0获取字符,并精确计算该字符在输入中重复出现的次数。对于PETER PIPER示例,系统应该打印出“6”,因为这是索引0位置的字符出现的次数。但是如果用户输入abcdcbcdda,它应该打印出“3”


我是一名新的程序员,错过了一天的课程,现在已经远远落后,正在努力追赶,对此我将不胜感激。如果可以的话,请解释你为什么使用你使用的特定代码,以及我可以用来学习如何使用特定东西的任何参考资料。谢谢大家!

首先,您需要存储第一个字符:

char firstChar = userInput.charAt(0);
创建一个变量,以跟踪找到的匹配项的数量:

int count = 0;
循环字符串并增加计数(如果适用):

for(int i=0; i<userInput.length(); i++){
  if(userInput.charAt(i) == firstChar){
    count++
  }
 }

for(inti=0;i我不愿意给你工作代码,因为给你交作业没有帮助。
因为您已经知道如何使用
userInput.charAt(n)检索字符
应在for循环之前使用索引0将第一个字符另存为
targetCharacter
。现在可以使用for循环检查每个字符是否与该字符相等,并对其进行计数。为提高可读性,应正确缩进代码并使用大括号,如下所示:

if(userInput.charAt(i) == 'a') {
  count++;
}
import javax.swing.JOptionPane;

public class CounterCharacter {
 public static void main(String[] args) {
    String userInput = JOptionPane.showInputDialog("Input a string");
    // Use charAt to retrieve a character at a specific position
    char firstChar = userInput.charAt(0);
    int count=0;

    for(int i =0; i < userInput.length(); i++)
        if(userInput.charAt(i) == firstChar)
      {
         count++;
      }
   System.out.println(count);
 }
}

然后,您可以在for循环后打印出计数(这意味着在for循环的大括号后)。如果您仍然有任何问题,请更改您原来的问题。

我会这样尝试:

if(userInput.charAt(i) == 'a') {
  count++;
}
import javax.swing.JOptionPane;

public class CounterCharacter {
 public static void main(String[] args) {
    String userInput = JOptionPane.showInputDialog("Input a string");
    // Use charAt to retrieve a character at a specific position
    char firstChar = userInput.charAt(0);
    int count=0;

    for(int i =0; i < userInput.length(); i++)
        if(userInput.charAt(i) == firstChar)
      {
         count++;
      }
   System.out.println(count);
 }
}
import javax.swing.JOptionPane;
公共类反角色{
公共静态void main(字符串[]args){
String userInput=JOptionPane.showInputDialog(“输入字符串”);
//使用charAt检索特定位置的字符
char firstChar=userInput.charAt(0);
整数计数=0;
对于(int i=0;i

公共类计数字符{

public static void main(String[] args)
{
int count = 1;
String userInput = JOptionPane.showInputDialog("Input a string");
char ch = userInput.charAt(0);
for(int i =1; i < userInput.length(); i++)
{
    if(userInput.charAt(i) == ch)

    count++;
}


System.out.println(count);

}

}
publicstaticvoidmain(字符串[]args)
{
整数计数=1;
String userInput=JOptionPane.showInputDialog(“输入字符串”);
char ch=userInput.charAt(0);
for(int i=1;i


这将为您提供您想要产生的输出….

您已经很好地描述了问题,因此您确实需要将您对它的描述转化为代码

现在可能很难做到这一点,因为您似乎不明白代码为什么要这样做。一旦您理解了它——一行一行——就应该更容易实现您想要的结果

我将帮助您了解您现在拥有的内容,您可以将其转化为工作成果:

String userInput = JOptionPane.showInputDialog("Input a string");
获取要操作的输入字符串

int count = userInput.indexOf(0);
此方法正在使用。您正在询问“字符0()的第一次出现(索引)在哪里。这没有帮助,因为您想要的是相反的-index0处的第一个字符。这正是
charAt
所做的。的文档很有帮助--请阅读它们

不仅如此,您还将此结果分配给
count
。为什么

你需要记住索引
0
(提示,一个字符,而不是
int
)处的字符,但是你还需要开始计数——如果你从字符串的开头开始循环,则从0开始。因此我认为你需要从两个变量开始

for(int i =0; i < userInput.length(); i++)
这将检查
i
处的字符是否为
'a'
——为什么?您真正需要的是查看它是否与第一个字符匹配

还要注意,如果块(同样,
{…}
)的工作方式与循环相同。最好在每个
if
else
for
while
等上使用它们,直到你真正知道自己在做什么。这样你就不会意外绊倒

    count++;
增加计数。如果您的
计数
是正确的,这就是您想要的(记住,事实并非如此)


对我来说很好,除了记住这不是循环块,但你已经将它缩进了。

感谢你帮助我了解我的代码有哪些错误。正如我之前所说的,我不知道如何利用字符串,因为我在参加课程时错过了这一天…@user2828963有帮助吗?谢谢你的帮助在我的编码过程中。我明白我做错了什么,并且开始研究更多关于字符串及其应用和用途的内容。我真的很感谢你们的帮助。嘿,伙计们。谢谢你们的帮助。我最后翻阅了朋友的笔记,并尝试了更多的内容,然后意识到我刚才键入的内容几乎与许多人的相同您的脚本。特别感谢@Carsten Hoffmann以他的方式解释事情和尝试