JAVA - 用SCANNER读取字符

时间:2012-03-01 02:06:55

标签: java

以下是我正在处理的问题。

我们必须要求用户输入一个字符串,然后输入一个字符(任何字符都可以)。然后计算该字符出现在扫描仪中的次数。

我无法弄清楚如何在扫描仪中添加字符。我们还没有完成数组,所以我不想去那里,但这是我到目前为止所做的:

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");
            }


            }

        }

我知道这是不正确的,但我现在无法解决这个问题。

任何帮助都将受到高度赞赏。

2 个答案:

答案 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");