Java - Использование метода для заполнения и печати массивов для номера каждой буквы в строке - PullRequest
0 голосов
/ 13 ноября 2018

У меня есть следующий код, который, я думаю, должен работать, но в println появляется сообщение об ошибке:

Несколько маркеров в этой строке:

  • Метод letterFrequencies (String) в типе LetterFrequencies не применим для аргументов ()

  • вход не может быть преобразован в переменную

'publicclass LetterFrequencies {'

public static void main(String[] args)
    {
        // TODO Auto-generated method stub
        String str = "I love programming ";

        System.out.println (letterFrequencies(input));
    }

    public static int timesCharOccurs (String str, char character) 
    {
        int timesOccurs = 0;

        String str2 = str.toLowerCase();
        char [] charArray = str2.toCharArray();  // Turns the String into Char
        for (int i=0; i<str2.length(); i++)   // Loops for the number of Chars as transformed
        {
            if (charArray[i] == character) 
            {
                timesOccurs ++;
            }
        }
        return timesOccurs;
    }

    public int[] letterFrequencies (String input)
    {
        int [] occuranceValues = new int[26];
        char [] alphabetArray = {
                'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n',
                'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'};

        for (int i=0; i < alphabetArray.length; i++)
        {
            char letter = alphabetArray[i];
            occuranceValues[i] = timesCharOccurs(input, letter);
        }
        return occuranceValues;
    }

То, что я думаю, должно происходить, так это то, что строка печати должна возвращать массив в методе letterFrequencies, но, похоже, он не может быть принят

Я делаю это такконкретный способ, так как это проблема из моей лаборатории Java.

ценю любую помощь

1 Ответ

0 голосов
/ 13 ноября 2018

Ваша переменная в main называется str (не input).Измените

System.out.println (letterFrequencies(input));

на

System.out.println (Arrays.toString(letterFrequencies(str)));

или

String input = "I love programming ";
System.out.println(Arrays.toString(letterFrequencies(input)));

И я получу

[1, 0, 0, 0, 1, 0, 2, 0, 2, 0, 0, 1, 2, 1, 2, 1, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...