C#/.NET如何判断一个字符是不是包含在另一个字符里面

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#/.NET如何判断一个字符是不是包含在另一个字符里面相关的知识,希望对你有一定的参考价值。

例如:
string str1 = "ac,ab,b,cd"
string str2 = "a"

if (str1是否有包含str2)

如果有,条件成立

else

条件不成立


以上我想要的结果是不成立的,我想将ac,ab,b,cd这些字符通过,拆分开来再进行一一对比,拆出来就是

ac
ab
b
cd

然后再和str2进行对比,例如会变成这种对比

if (ac == a)
if (ab == a)
if (b == a)
if (cd == a)

请问如何实现 - -
忘了,还有个条件就是如果其中有一个条件成立了,其它也就不成立

参考技术A string str1 = "ac,ab,b,cd" ;
string str2 = "a";
string[] str = str1.Split(',');
for (int i = 0; i < str.Length; i++)

if (str[i].Contains(str2))
Response.Write(str[i] + " " + "contains" + " " + str2 + ".");
else
Response.Write(str[i] + " " + "does not contain" + " " + str2 + ".");
本回答被提问者采纳
参考技术B string str1 = "123456789";

string str2 = "456";

bool b = str1.Contains(str2);
参考技术C string str1 = "ab,ac,b,ad";
string str2 = "a";
string[] tempArray = str1.Split(',');
System.Collections.Generic.List<string> list = new System.Collections.Generic.List<string>();
foreach (string str in tempArray)
list.Add(str);
Response.Write(list.Contains(str2));
参考技术D 定义变量字符串数组s
s=str1.Split(",")
用foreach循环,
依次检查s数组里的每个字符串是否等于str2,然后处理
第5个回答  2008-09-27 string s;//原字符串
string ss;//包含字符串
bool b=s.Contains("ss");//返回一个布尔值
if(b==true)
//说明包含
else
//不包含

如何判断一个字符串是不是包含在另一个字符串中

【中文标题】如何判断一个字符串是不是包含在另一个字符串中【英文标题】:how to find whether a string is contained in another string如何判断一个字符串是否包含在另一个字符串中 【发布时间】:2011-02-05 03:19:33 【问题描述】:
a='1234;5'
print a.index('s')

错误是:

> "D:\Python25\pythonw.exe"  "D:\zjm_code\kml\a.py" 
Traceback (most recent call last):
  File "D:\zjm_code\kml\a.py", line 4, in <module>
    print a.index('s')
ValueError: substring not found

谢谢

【问题讨论】:

这是另一个问题的重复:***.com/questions/3437059/… 另一个字符串中的一个字符串?你说的。这是蟒蛇 @Anderson:同意,它应该作为重复关闭。 【参考方案1】:
def substr(s1, s2):  # s1='abc' , s2 = 'abcd'
    i = 0
    cnt = 0
    s = ''
    while i < len(s2):
        if cnt < len(s1):
            if s1[cnt] == s2[i]:
                cnt += 1
                s += s2[i]
            else:
                cnt = 0
                s = ''
        i += 1
    if s == s1:
        print(f's1 is substring of s2')
    else:
        print(f's1 is not a substring of s2') 

【讨论】:

问题是什么? 如果一个字符串包含另一个字符串作为子字符串。就是这个问题。【参考方案2】:

让我们按照下面提到的来试试这个。

方法一:

if string.find("substring") == -1:
 print("found")
else:
 print("not found")

方法二:

 if "substring" in "string":
  print("found")
 else:
   print("not found")

【讨论】:

【参考方案3】:

这是检查字符串中是否存在子字符串的正确方法。

定义海(str,str1):

if(str1[0:] in str):

    return "yes"
else:
    return "no"
print(sea("sahil","ah"))

【讨论】:

【参考方案4】:

str.find()str.index() 几乎相同。最大的区别是,当找不到字符串时,str.index() 会抛出一个错误,就像你得到的那样,而str.find() 返回 -1,就像其他人发布的那样。

有 2 个姊妹方法,称为 str.rfind()str.rindex(),它们从字符串的末尾开始搜索并朝着开头工作。

此外,正如其他人已经表明的那样,in 运算符(以及 not in)也完全有效。

最后,如果你想在字符串中寻找模式,你可以考虑正则表达式,尽管我认为太多人在使用它们时过度使用它们。换句话说,“now you have two problems。”

就我目前掌握的所有信息而言,就是这样。但是,如果您正在学习 Python 和/或学习编程,我给我的学生的一个非常有用的练习是尝试自己在 Python 代码中构建 *find()*index(),甚至是 innot in (虽然是函数)。您将获得遍历字符串的良好实践,并且您将更好地了解现有字符串方法的工作原理。

祝你好运!

【讨论】:

正则表达式有点矫枉过正?!为什么?对于大多数字符串匹配算法,可能没有更高效、更清晰的编程方法了。 对于可以使用 find() 和 index() 等工具完成的简单搜索,正则表达式不是一个好的选择,因为如果不仔细检查它们往往难以阅读。能够略过正则表达式并捕捉到它试图做的所有细节是很少见的。它们对于复杂的模式非常有效,但可维护性可能是一个问题。【参考方案5】:

如果您只想检查子字符串是否在字符串中,可以使用in 运算符。

if "s" in mystring:
   print "do something"

否则,您可以使用 find() 并检查 -1(未找到)或使用 index()

【讨论】:

【参考方案6】:

尝试改用find() - 这会告诉你它在字符串中的位置:

a = '1234;5'
index = a.find('s')
if index == -1:
    print "Not found."
else:
    print "Found at index", index

如果你只是想知道是否字符串在里面,你可以使用in:

>>> print 's' in a
False
>>> print 's' not in a
True

【讨论】:

【参考方案7】:
print ('s' in a)     # False
print ('1234' in a)  # True

如果您也需要索引,但不希望引发异常,请使用 find

print a.find('s')    # -1
print a.find('1234') # 0

【讨论】:

以上是关于C#/.NET如何判断一个字符是不是包含在另一个字符里面的主要内容,如果未能解决你的问题,请参考以下文章

Js如何判断字符串是不是位空格/多空格

c++如何判断字符串是不是全为汉字

在C语言中怎样判断一个字符串中是不是包含另一个字符串

在C语言中怎样判断一个字符串中是不是包含另一个字符串

C语言定义一个函数,判断字符串中是不是包含另一个子串

c语言中如何判断输入的是不是数字?