Java 计算字符串中字母的出现次数
我正在尝试用Java编写一个for循环,它将计算字符串中字母的出现次数。用户将输入要计数的字母和要搜索的字符串。这是一个非常基本的代码,我们还没有得到数组或其他很多东西。(我意识到我已经两次声明了这封信,但此时我的大脑已经死了)这是我迄今为止尝试过的,并且遇到了问题,任何帮助都是非常感谢的: 好的,我根据建议更改了代码,但现在它只读取我句子的第一个单词Java 计算字符串中字母的出现次数,java,for-loop,Java,For Loop,我正在尝试用Java编写一个for循环,它将计算字符串中字母的出现次数。用户将输入要计数的字母和要搜索的字符串。这是一个非常基本的代码,我们还没有得到数组或其他很多东西。(我意识到我已经两次声明了这封信,但此时我的大脑已经死了)这是我迄今为止尝试过的,并且遇到了问题,任何帮助都是非常感谢的: 好的,我根据建议更改了代码,但现在它只读取我句子的第一个单词 import java.util.Scanner; public class CountCharacters { public static
import java.util.Scanner;
public class CountCharacters {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
char letter;
String sentence = "";
System.out.println("Enter a character for which to search");
letter = in.next().charAt(0);
System.out.println("Enter the string to search");
sentence = in.next();
int count = 0;
for (int i = 0; i < sentence.length(); i++) {
char ch = sentence.charAt(i);
if (ch == letter) {
count++;
}
}
System.out.printf("There are %d occurrences of %s in %s", count,
letter, sentence);
}
}
import java.util.Scanner;
公共类计数字符{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(系统输入);
字符字母;
字符串句子=”;
System.out.println(“输入要搜索的字符”);
字母=in.next().charAt(0);
System.out.println(“输入要搜索的字符串”);
句子=in.next();
整数计数=0;
for(int i=0;i<句子长度();i++){
char ch=句子charAt(i);
if(ch==字母){
计数++;
}
}
System.out.printf(“在%s中出现了%d个%s”,计数,
字母、句子);
}
}
您的如果(句子长度()请尝试以下操作:
Char letter = '';
String sentence = "";
System.out.println("Enter a character for which to search");
letter = in.next().charAt(0);
System.out.println("Enter the string to search");
sentence = in.next();
int count= 0;
for (int i = 0; i < sentence.length(); i++) {
char ch = sentence.charAt(i);
if (ch==letter) {
count++;
}
}
System.out.print(letter+" occurance:"+count);
Char字母=”;
字符串句子=”;
System.out.println(“输入要搜索的字符”);
字母=in.next().charAt(0);
System.out.println(“输入要搜索的字符串”);
句子=in.next();
整数计数=0;
for(int i=0;i<句子长度();i++){
char ch=句子charAt(i);
if(ch==字母){
计数++;
}
}
系统输出打印(字母+“发生:”+计数);
试试这个
忘记String letter=“”
if(句长()我发现了几个问题。首先,您有两个同名变量
第二步,检查if
条件,检查句子长度是否大于0,而不是检查字符是否相等
Scanner in = new Scanner(System.in);
char inLetter = "";
String sentence = "";
System.out.println("Enter a character for which to search");
inLetter = in.next().charAt(0);
System.out.println("Enter the string to search");
sentence = in.next();
int letter = 0;
for (int i = 0; i < sentence.length(); i++) {
char ch = sentence.charAt(i);
if (inLetter == ch) {
letter++;
}
}
System.out.print(sentence.charAt(letter));
Scanner-in=新的扫描仪(System.in);
char inLetter=“”;
字符串句子=”;
System.out.println(“输入要搜索的字符”);
inlineter=in.next().charAt(0);
System.out.println(“输入要搜索的字符串”);
句子=in.next();
int字母=0;
for(int i=0;i<句子长度();i++){
char ch=句子charAt(i);
如果(入口==ch){
字母++;
}
}
系统输出打印(句子字符(字母));
我还强烈建议验证输入(在上面的示例中没有这样做),而不是假设第一个输入有一个字符,第二个输入有一个句子。无需循环:
String sentence = "abcabcabcd";
String letter = "b";
int numOfOccurences = sentence.length() -
sentence.replaceAll(letter, "").length();
System.out.println("numOfOccurences = "+numOfOccurences);
输出:
numOfOccurences = 3
您需要知道要搜索的字符。您可以使用charToSearch=letter.tocharray()[0];
定义一个变量,例如count,以统计给定字符串中字母的出现次数
循环字符串并比较每个字符,如果字符等于要搜索的字符,则计数++
示例--->
int count=0;
chart charToSearch=letter.toCharArray()[0];
for(int i=0;i<句子长度();i++){
if(句子.字符(i)=图表搜索){
计数++;
}
}
System.out.printf(“在%s中出现的%s是%d”,字母、句子、计数);
希望这对您有所帮助
import java.util.Scanner;
public class CountCharacters {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("Enter the string to search");
String sentence = in.nextLine();
System.out.println("Enter a character for which to search");
String letter = in.next();
int noOfOccurance = 0;
for (int i = 0; i < sentence.length(); i++) {
char dh=letter.charAt(0);
char ch = sentence.charAt(i);
if (dh==ch) {
noOfOccurance++;
}
}
System.out.print(noOfOccurance);
}
}
尝试indexOf()方法。
它应该可以工作您的Scanner类在读取字符后没有移动到下一行
letter = in.next().charAt(0);
在读取输入字符串之前,在.nextLine()中添加另一个
System.out.println("Enter a character for which to search");
letter = in.next().charAt(0);
in.nextLine();
System.out.println("Enter the string to search");
sentence = in.nextLine();
旧线程,但希望有帮助:)既然您的代码无法编译,您如何知道它不起作用?它不起作用,但您实际尝试过吗?如果有,请解释问题所在(除了重复声明)。您不能使用char在.next();中应用。
int count = 0;
char charToSearch = letter.toCharArray()[0];
for (int i = 0; i < sentence.length(); i++) {
if (sentence.charAt(i) == charToSearch) {
count++;
}
}
System.out.printf("Occurrences of a %s in %s is %d", letter, sentence, count);
import java.util.Scanner;
public class CountCharacters {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("Enter the string to search");
String sentence = in.nextLine();
System.out.println("Enter a character for which to search");
String letter = in.next();
int noOfOccurance = 0;
for (int i = 0; i < sentence.length(); i++) {
char dh=letter.charAt(0);
char ch = sentence.charAt(i);
if (dh==ch) {
noOfOccurance++;
}
}
System.out.print(noOfOccurance);
}
}
Enter the string to search
how are you
Enter a character for which to search
o
No of Occurances : 2
letter = in.next().charAt(0);
System.out.println("Enter a character for which to search");
letter = in.next().charAt(0);
in.nextLine();
System.out.println("Enter the string to search");
sentence = in.nextLine();