I want to take a string and check the first character for being a letter, upper or lower doesn’t matter, but it shouldn’t be special, a space, a line break, anything. How can I achieve this in C#?
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 1
Try the following
string str = ...; bool isLetter = !String.IsNullOrEmpty(str) && Char.IsLetter(str[0]);
Method 2
Try the following
bool isValid = char.IsLetter(name.FirstOrDefault());
Method 3
return (myString[0] >= 'A' && myString[0] <= 'Z') || (myString[0] >= 'a' && myString[0] <= 'z')
Method 4
You should look up the ASCII table, a table which systematically maps characters to integer values. All lower-case characters are sequential (97-122), as are all upper-case characters (65-90). Knowing this, you do not even have to cast to the int values, just check if the first char of the string is within one of those two ranges (inclusive).
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0