Du könntest 2 Methoden schreiben, in denen mit einer for-Schleife über die Strings iterieren und mit einer if-Bedingung prüfen, ob die / bzw. min. ein Zeichen nicht im jeweiligen Bereich für Klein- bzw. Großbuchstaben liegt und dann false zurückgeben, ansonsten true, denn dann lagen alle Zeichen in dem Bereich.
Code:
using System;
class ASCII
{
static void Main()
{
string onlyUpperCase = "TEST";
string onlyLowerCase = "test";
string mixed = "TesT";
Console.WriteLine("IsStringOnlyUpperCase - TEST: "
+ IsStringOnlyUpperCase(onlyUpperCase));
Console.WriteLine("IsStringOnlyLowerCase - TEST: "
+ IsStringOnlyLowerCase(onlyUpperCase) + "\n");
Console.WriteLine("IsStringOnlyUpperCase - test: "
+ IsStringOnlyUpperCase(onlyLowerCase));
Console.WriteLine("IsStringOnlyLowerCase - test: "
+ IsStringOnlyLowerCase(onlyLowerCase) + "\n");
Console.WriteLine("IsStringOnlyUpperCase - TesT: "
+ IsStringOnlyUpperCase(mixed));
Console.WriteLine("IsStringOnlyLowerCase - TesT: "
+ IsStringOnlyLowerCase(mixed) + "\n");
}
// Methode für Großbuchstaben
static bool IsStringOnlyUpperCase(String s)
{
for(int i = 0; i < s.Length; i++)
{
// wenn aktuelles Zeichen nicht zwischen 65 und 90 liegt false zurückgeben
if (!(s[i] >= 65 && s[i] <= 90))
{
return false;
}
}
// alle Zeichen lagen zwischen 65 und 90 true zurückgeben
return true;
}
// Methode für Kleinbuchstaben
static bool IsStringOnlyLowerCase(String s)
{
for(int i = 0; i < s.Length; i++)
{
// wenn aktuelles Zeichen nicht zwischen 97 und 122 liegt false zurückgeben
if (!(s[i] >= 97 && s[i] <= 122))
{
return false;
}
}
// alle Zeichen lagen zwischen 97 und 122 true zurückgeben
return true;
}
}
Ausgabe:
IsStringOnlyUpperCase - TEST: True
IsStringOnlyLowerCase - TEST: False
IsStringOnlyUpperCase - test: False
IsStringOnlyLowerCase - test: True
IsStringOnlyUpperCase - TesT: False
IsStringOnlyLowerCase - TesT: False