Эта программа, которую я делаю для COSC конечно не компиляции правильно, я получаю ошибку:Строковый указатель за пределами границ? (Java, петля подстрока)
Исключение в потоке «основной» java.lang.StringIndexOutOfBoundsException: индекс строки из диапазон: 2
в java.lang.String.substring (String.java:1765) в VowelCount.main (VowelCount.java:13)
Вот мой код:
import java.util.Scanner;
public class VowelCount {
public static void main(String[] args) {
int a = 0, e = 0, i = 0, o = 0, u = 0, count = 0;
String input, letter;
Scanner scan = new Scanner (System.in);
System.out.println ("Please enter a string: ");
input = scan.nextLine();
while (count <= input.length()) {
letter = input.substring(count, (count + 1));
if (letter == "a") {
a++; }
if (letter == "e") {
e++; }
if (letter == "i") {
i++; }
if (letter == "o") {
o++; }
if (letter == "u") {
u++; }
count++;
}
System.out.println ("There are " + a + " a's.");
System.out.println ("There are " + e + " e's.");
System.out.println ("There are " + i + " i's.");
System.out.println ("There are " + o + " o's.");
System.out.println ("There are " + u + " u's.");
}
}
Для мои знания это должно сработать, но почему? Любая помощь будет большой. Спасибо!
Alright, он компилирует! Но все равно не выводит правильные суммы. Тестовая строка «aeiou» приводит к 0, 0, 0, 0, 0 .. – Brad
изменить на 'substr (count, 1)' – mauris
Не использовать == для сравнения строк, как упоминалось в других ответах –