Ответ 1
Используйте String.Contains:
if (stringValue.Contains(anotherStringValue))
{
// Do Something //
}
Надеюсь, кто-то может мне помочь. Я просто изучаю С#, и у меня есть простой вопрос.
У меня есть переменная, и я хотел бы проверить, существует ли она в другой строке. Что-то вроде
if ( test contains "abc" ) {
}
Есть ли простой способ сделать это в С#
Используйте String.Contains:
if (stringValue.Contains(anotherStringValue))
{
// Do Something //
}
IndexOf()
выполнит работу...
Он вернет -1, если строка не существует
string MainString = "String Manipulation";
string SearchString = "pul";
int FirstChr = MainString.IndexOf(SearchString);
Этот код показывает, как выполнять поиск в строке для подстроки и возвращает позицию индекса начала или -1, которая указывает, что строка не найдена.
вы также можете использовать Contains()
, Contains - это метод экземпляра в строковом типе, что означает, что вы можете называть его определенной строкой в вашей программе. Он имеет результат bool, который является истинным, если параметр найден, и false, если он не найден.
using System;
class Program
{
static void Main()
{
Test("Dot Net Perls");
Test("dot net perls");
}
static void Test(string input)
{
Console.Write("--- ");
Console.Write(input);
Console.WriteLine(" ---");
//
// See if the string contains 'Net'
//
bool contains = input.Contains("Net");
//
// Write the result
//
Console.Write("Contains 'Net': ");
Console.WriteLine(contains);
//
// See if the string contains 'perls' lowercase
//
if (input.Contains("perls"))
{
Console.WriteLine("Contains 'perls'");
}
//
// See if the string contains 'Dot'
//
if (!input.Contains("Dot"))
{
Console.WriteLine("Doesn't Contain 'Dot'");
}
}
}
проверить С# String Functions и Manipulation для чего-либо о строках.
Обратитесь Это.
String.Contains(...)
Вы должны использовать регулярные выражения. Например Regex.IsMatch(test, "abc")
. Это вернет true, если тест содержит abc.
используя String.Contains(...)
, может не быть хорошей идеей.
String.Contains(...)
делает порядковое сравнение с регистром. Поэтому будьте осторожны при сопоставлении случаев.
вы можете использовать ToLower()
или ToUpper()
перед тем, как проверить
Для этого используйте String.Contains
.
if (test.Contains("abc"))
{
// Your Code Here
}
if (stringValue.ToUpper().Contains("FIND_THIS"))
{
// Do Something //
}
Является еще одним хорошим вариантом для поиска без учета регистра.
Есть несколько методов, которые могут выполнять эту проверку, например CompareTo
, Contains
, Compare
, IndexOfAny
и IndexOf
.
Проверьте список методов класса String
.
string s1 = "ani\u00ADmal";
string s2 = "animal";
string s3 = "abc";
string s4 = "abc";
string s5 = "ABC";
bool b1 = s1.CompareTo(s2) > -1; // return true, exists
bool b2 = s3.CompareTo(s4) > -1; // return true, exists
bool b3 = s3.CompareTo(s5) > -1; // return false, no case sensitive, no exists
bool b4 = s1.Contains(s2); // return false, no exists
bool b5 = s3.Contains(s4); // return true, exists
bool b6 = s3.Contains(s5); // return false, no case sensitive, no exists
string s6 = "MACHINE";
string s7 = "machine";
string s8 = "nature";
int a = String.Compare(s6, 0, s7, 0, s6.Length, true); // return 0, contain and is less
int b = String.Compare(s6, 0, s7, 0, s6.Length, false); // return 1, contain and is greater
int c = String.Compare(s6, 0, s8, 0, s6.Length, true); // return -1, no contain
int d = String.Compare(s6, 0, s8, 0, s6.Length, false); // return -1, no contain
int e = s1.IndexOfAny(s2.ToCharArray()); // return 0, exists
int f = s3.IndexOfAny(s4.ToCharArray()); // return 0, exists
int g = s3.IndexOfAny(s5.ToCharArray()); // return -1, no case sensitive, no exists
int h = s1.IndexOf(s2); // return 0, exists
int i = s3.IndexOf(s4); // return 0, exists
int j = s3.IndexOf(s5); // return -1, no exists