以下是我正在处理的问题。
我们必须要求用户输入一个字符串,然后输入一个字符(任何字符都可以)。然后计算该字符出现在扫描仪中的次数。
我无法弄清楚如何在扫描仪中添加字符。我们还没有完成数组,所以我不想去那里,但这是我到目前为止所做的:
import java.util.Scanner;
public class Counter {
public static void main (String args[]){
String a;
char b;
int count;
int i;
Scanner s = new Scanner (System.in);
System.out.println("Enter a string");
a = s.nextLine();
System.out.println("Enter a character");
b = s.next().charAt(0);
count = 0;
for (i = 0; i <= a.length(); i++){
if (b == s.next().charAt(b)){
count += 1;
System.out.println(" Number of times the character appears in the string is " + count);
else if{
System.out.println("The character appears 0 times in this string");
}
}
}
我知道这是不正确的,但我现在无法解决这个问题。
任何帮助都将受到高度赞赏。
答案 0 :(得分:1)
要验证输入[String,char],请使用while循环从用户获取字符。基本上,您将检查用户是否输入长度为1 的字符串进行字符输入。 以下是代码的编译和正在运行版本:
import java.util.Scanner;
public class Counter
{
public static void main ( String args[] )
{
String a = "", b = "";
Scanner s = new Scanner( System.in );
System.out.println( "Enter a string: " );
a = s.nextLine();
while ( b.length() != 1 )
{
System.out.println( "Enter a single character: " );
b = s.next();
}
int counter = 0;
for ( int i = 0; i < a.length(); i++ )
{
if ( b.equals(a.charAt( i ) +"") )
counter++;
}
System.out.println( "Number of occurrences: " + counter );
}
}
答案 1 :(得分:0)
首先,for循环条件应更改为:
for (i = 0; i < a.length(); i++)
索引从0开始,但是当你计算长度时,你从1开始。因此你不需要'='。
其次,在for循环中,你只需要做一件事:将a的每个字符与b进行比较:
if (b == a.charAt(i))
count += 1;
在这里,与其他解决方案相比,char比String要便宜。
第三,在for循环之后,输出取决于计数:
if (count > 0)
System.out.println(" Number of times the character appears in the string is "
+ count);
else // must be count == 0
System.out.println("The character appears 0 times in this string");