我希望字符串包含特定字符

时间:2019-12-15 13:38:31

标签: c#

输入内容只能包含两个化学元素:CH 该程序必须控制。 我该如何提供?

if (formul.Contains('C') == true && formul.Contains('H') == true)
    return true;

当我输入的是HCA时,它仍然是正确的。我希望它仅包含CH

3 个答案:

答案 0 :(得分:2)

using System.Linq; \\put this on top

return formul.All(c => c == 'C' || c == 'H');

如果true字符串的所有字符均为'C'或'H',则返回formul

答案 1 :(得分:1)

使用@Piotr建议的LINQ可以解决上述问题,但是通常最好使用正则表达式(regexes)进行文本模式匹配,如下所示:

Regex.IsMatch(input, @"^[CH]+$");

仅当true包含一个或多个字符的字符串(每个字符均为'C'或'H')时,此方法将返回input

您可以在这里进行测试:https://regex101.com/r/X6pzqa/1/

答案 2 :(得分:0)

化学式(据我所知)也可以包含数字,因此您也必须考虑到这一点,这是我解决问题的想法:

return ! formula.Any(ch => char.IsLetter(ch) && ch != 'C' && ch != 'H');

它将检查公式中的任何字母是否不同于CH。如果除CH以外的其他字母,则返回false,否则返回true。