检查字符串是否包含未定义的字符
Check if a string contains not defined characters
我有一个预定义的字符串如下。
string preDefined="abc"; // or i can use char array in here
string value="ac";
string value1="abw";
我需要一些函数来比较预定义的值。
(value.SomefunctionContains(preDefined)
此功能需要return
value -> true;
value1 -> false
我知道我不能使用 contains() 或 Any()。所以请帮忙
您只是在寻找 value
是否有任何不在 predefined
中的字符,所以应该这样做:
!value.Any(x => !predefined.Contains(x))
或者用All
更清楚:
value.All(predefined.Contains);
private bool SomeFunction(string preDefined, string str)
{
foreach (char ch in str)
{
if (!preDefined.Contains(ch))
{
return false;
}
}
return true;
}
您可以执行以下方法来获取结果:
private static bool DoesContain(string predefined, string value)
{
char[] c_pre = predefined.ToCharArray();
char[] c_val = value.ToCharArray();
char[] intersection = c_pre.Intersect(c_val).ToArray();
if (intersection.Length == c_val.Length) {
return true;
}
else {
return false;
}
}
请注意,此解决方案是通用实施。即使字符的顺序不同,它也 returns 正确,除非包含所有字符。
我有一个预定义的字符串如下。
string preDefined="abc"; // or i can use char array in here
string value="ac";
string value1="abw";
我需要一些函数来比较预定义的值。
(value.SomefunctionContains(preDefined)
此功能需要return
value -> true;
value1 -> false
我知道我不能使用 contains() 或 Any()。所以请帮忙
您只是在寻找 value
是否有任何不在 predefined
中的字符,所以应该这样做:
!value.Any(x => !predefined.Contains(x))
或者用All
更清楚:
value.All(predefined.Contains);
private bool SomeFunction(string preDefined, string str)
{
foreach (char ch in str)
{
if (!preDefined.Contains(ch))
{
return false;
}
}
return true;
}
您可以执行以下方法来获取结果:
private static bool DoesContain(string predefined, string value)
{
char[] c_pre = predefined.ToCharArray();
char[] c_val = value.ToCharArray();
char[] intersection = c_pre.Intersect(c_val).ToArray();
if (intersection.Length == c_val.Length) {
return true;
}
else {
return false;
}
}
请注意,此解决方案是通用实施。即使字符的顺序不同,它也 returns 正确,除非包含所有字符。