Member 14843380 Ответов: 2

В чем заключается ошибка в следующей программе, потому что выход для поиска количества слов, начинающихся с буквы А, равен нулю.


class Car
{
   static String a;
   static String str="";
   static int count=0;
   public static void input()
   {
       Scanner scan=new Scanner(System.in);
       System.out.println("Enter the sentence :");
       a=scan.nextLine();
    
     String str=a.toUpperCase();
    str=""+str;
}
    public static void Vowels()
    {
        for(int i=0;i<str.length()-1;i++)
        {
            char b=str.charAt(i);
            if(Character.isWhitespace(b)&&(char)(b+1)=='A')
            {
                count++;
            }
        }
        System.out.println("The total number of words starting with letter 'A' is :"+count);
    }


Что я уже пробовал:

Приведенный выше код-это то, что я пробовал.

2 Ответов

Рейтинг:
2

phil.o

b+1 даст вам символ, который непосредственно следует за символом в b в таблице ASCII, а не следующий символ во входной строке. Более того, ваш код проверяет только прописную букву А, но не сможет найти слово, начинающееся со строчной буквы А.
Я не буду писать его для вас, так как для вас важно понять, что не так, и исправить это самостоятельно. Попробуйте, это совсем не трудно, и вы почувствуете гордость, решив ее самостоятельно.


Рейтинг:
1

Patrice T

char b=str.charAt(i); // here, b is the letter at position i
if(Character.isWhitespace(b)&&(char)(b+1)=='A') // here b+1 is next letter in alphabet, not next letter in sentence

пробовать
char b=str.charAt(i);
char c=str.charAt(i+1);
if(Character.isWhitespace(b)&& c=='A')

-----
Кстати, Ваш счет будет неверным, если первое слово начинается с "а". и вы забыли вызвать функцию "гласные"
-----
Ваш код ведет себя не так, как вы ожидаете, или вы не понимаете, почему !

Существует почти универсальное решение: запускайте свой код на отладчике шаг за шагом, проверяйте переменные.
Отладчик здесь, чтобы показать вам, что делает ваш код, и ваша задача-сравнить с тем, что он должен делать.
В отладчике нет никакой магии, он не знает, что должен делать ваш код, он не находит ошибок, он просто помогает вам, показывая, что происходит. Когда код не делает того, что ожидается, вы близки к ошибке.
Чтобы увидеть, что делает ваш код: просто установите точку останова и посмотрите, как работает ваш код, отладчик позволит вам выполнять строки 1 на 1 и проверять переменные по мере их выполнения.

Отладчик - Википедия, свободная энциклопедия[^]

Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]
Базовая отладка с помощью Visual Studio 2010 - YouTube[^]
http://docs.oracle.com/javase/7/docs/technotes/tools/windows/jdb.html[^]
https://www.jetbrains.com/idea/help/debugging-your-first-java-application.html[^]

Отладчик здесь только для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.