我坚持尝试打印只包含小写字母a-z的单词。我已经删除了输入的字符串,如果它包含任何数字0-9并且它包含一个大写字母:
String[] textParts;
textParts = text.Split(delimChars);
for (int i = 0; i < textParts.Length; i++) //adds s to words list and checks for capitals
{
String s = textParts[i];
bool valid = true;
foreach (char c in textParts[i])
{
if (char.IsUpper(c))
{
valid = false;
break;
}
if (c >= '0' && c <= '9')
{
valid = false;
break;
}
if (char.IsPunctuation(c))
{
valid = false;
break;
}
}
if (valid) pageIn.words.Add(s);
到目前为止,这是我的代码。最后一部分我试图检查一个单词是否包含任何标点符号(它不起作用)是否有更简单的方法可以做到这一点,我怎样才能使我的代码的最后一部分工作?
P.S。我对使用正则表达式感到不舒服。
非常感谢, 埃利
答案 0 :(得分:1)
如果没有正则表达式,你可以使用LINQ(可能性能较差)
bool isOnlyLower = s.Count(c => Char.IsLower(c)) == s.Length;
Count将检索以下字符串中较低的char数。如果它与字符串的长度匹配,则字符串仅由小写字母组成。
答案 1 :(得分:0)
var regex = new Regex("^[a-z]+$");
if (!regex.IsMatch(input))
{
// is't not only lower case letters, remove input
}
答案 2 :(得分:-1)
我不确定我的问题是否正确,但不应该做以下工作?
for (int i = 0; i < textParts.Length; i++) //adds s to words list and checks for capitals
{
String s = textParts[i];
if(s.Equals(s.ToLower()))
{
// string is all lower
}
}