Я создаю пользовательский метод, который возвращает AnalyzerInts[]
, чтобы подсчитывать строчные, прописные, пробельные символы, знаки препинания и символы string input
. Я получаю необработанную ошибку исключения. «System.IndexOutOfRangeException: индекс находился за пределами массива». Как правильно получить значения Int[] AnalyzerInts
в моем основном методе?Возвращение массива Int из пользовательского метода String?
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Enter a string/sentence: ");
string userInput = Console.ReadLine();
int[] answers = StringAnalyzer(userInput);
Console.WriteLine("You have {0} uppercase letters in your string.", answers[0]);
Console.WriteLine("You have {0} lowercase letters in your string.", answers[1]);
Console.WriteLine("You have {0} whitespace characters in your string.", answers[2]);
Console.WriteLine("You have {0} punctuation characters in your string.", answers[3]);
Console.WriteLine("You have {0} characters in your string.", answers[4]);
}
static int[] StringAnalyzer (string input)
{
int[] AnalyzerInts = new int[4];
for (int x = 0; x < input.Length; x++)
{
if (char.IsUpper(input[x]))
{
AnalyzerInts[0]++;
}
else if (char.IsLower(input[x]))
{
AnalyzerInts[1]++;
}
else if (char.IsWhiteSpace(input[x]))
{
AnalyzerInts[2]++;
}
else if (char.IsPunctuation(input[x]))
{
AnalyzerInts[3]++;
}
AnalyzerInts[4]++;
}
return AnalyzerInts;
}
Он выдает ошибку, потому что вы объявляете функцию как возвращающую строку, но пытаетесь вернуть ' ИНТ [] '. Измените возвращаемый тип на 'int []', если это то, что должна возвращать функция. –
Это даже компилируется? Я никогда не видел кода, который выглядит как 'return AnalyzerInts [];', и я не ожидал. –
Он не скомпилировался, пока я правильно не изменил свою подпись метода на 'static int [] StringAnalyzer (string input)'. Теперь я просто пытаюсь правильно вернуть значение моего AnalyzerInts; 'в мой основной метод, не получив ошибку. –