C#如何判断字符串中是否包含某个字符

string[] str = {"0", "0.", "-0.", "-0"};
bool exists = (Number.IndexOf((str)));
if(exists)
{
Number = "";
}

Number是string类型
要判断Numver里是否有str里的内容

错误 1 与“string.IndexOf(char)”最匹配的重载方法具有一些无效参数
错误 2 参数“1”: 无法从“string[]”转换为“char”

vs2005 .net2.0是不是不能用Contains?
这段代码要怎么写呢?

谢谢!

using System;

using System.Collections;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace ConsoleApp1

{

    class Program

    {

        static void Main(string[] args)

        {

            string a = "abc平行线";

            Console.WriteLine(a.Contains("平行线"));

        }

    }

}

扩展资料:

C#字符串处理

1、从字符串中提取子串 

StringBuilder 类没有支持子串的方法,因此必须用String类来提取。(关于StringBuilder 类,文末会提到)

string mystring="My name is ynn."; 

//Displays "name is ynn." 

Console.WriteLine(mystring.Substring( 3 )); 

//Displays "ynn" 

Console.WriteLine(mystring.Substring( 11,3 ));

2、比较字符串 

String 类有四种方法:Compare( )、CompareTo( )、CompareOrdinal( )、Equals( )。 

Compare( )方法是CompareTo( )方法的静态版本。只要使用“=”运算符,就会调用Equals( )方法,的以Equals( )方法与“=”是等价的。CompareOrdinal( )方法对两个字符串比较不考本地语言与文件。

示例: 

int result; 

bool bresult; 

s1="aaaa"; 

s2="bbbb"; 

//Compare( )method 

//result值为“0”表示等,小于零表示 s1 < s2,大于零表示 s1 > s2 

result=String.Compare(s1,s2); 

result=s1.CompareTo( s2 ); 

result=String.CompareOrdinal(s1,s2)

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-05-18

例举:在进行C#编程时候,有的时候我们需要判断一个字符串是否是数字字符串,可以通过以下两种方法来实现。

方法一:使用try{}catch{}语句。

我们可以在try语句块中试图将string类型的字符串变量转换为int类型,如果该字符串不是数字字符串则会抛出异常,这时在catch语句块中就能捕获异常。一旦发现异常,则不是数字字符串。

我们可以以下三种方式将string类型转换为int类型。

(1)int.Parse(string);

(2)Convert.ToInt16(string);//当数字字符串的位数大于4的时候请使用Convert.ToInt32()

(3)Convert.ToInt32(string);

添加一个文本框TextBox1,和一个按钮Button1,当点击按钮时,判断文本框中的内容是否为数字字符串,是的话则输出转换后的数值。

protected void Button1_Click(object sender,EventArgs e)

{

string message=TextBox1.Text.Trim();

int result;

if(isNumberic(message,out result))

{

string tt="&lt;script&gt;alert('匹配成功,转换后的整数为"+result+"')&lt;/script&gt;";

Page.ClientScript.RegisterStartupScript(this.GetType(),"",tt);

}

else

Page.ClientScript.RegisterStartupScript(this.GetType(),"","&lt;script&gt;alert('匹配失败!')&lt;/script&gt;");

}

protected bool isNumberic(string message,out int result)

{

//判断是否为整数字符串

//是的话则将其转换为数字并将其设为out类型的输出值、返回true,否则为false

result=-1;//result定义为out用来输出值

try

{

//当数字字符串的为是少于4时,以下三种都可以转换,任选一种

//如果位数超过4的话,请选用Convert.ToInt32()和int.Parse()

//result=int.Parse(message);

//result=Convert.ToInt16(message);

result=Convert.ToInt32(message);

return true;

}

catch

{

return false;

}

}

上述方法可以将int改为double,如double.Parse(),这样就可以判断是否为浮点数字符串

【方法二】:通过正则表达式来判断。

用正则表达式来验证字符串是否为数字字符串。我们要用到Regex类的isMatch()方法。该类在System.Text.RegularExpressions;

可以通过using System.Text.RegularExpressions;导入命名空间来访问Regex类。

也可以直接通过System.Text.RegularExpressions.Regex来访问。

protected bool isNumberic(string message,out int result)

{

System.Text.RegularExpressions.Regex rex=

new System.Text.RegularExpressions.Regex("^\d+$");

result=-1;

if(rex.IsMatch(message))

{

result=int.Parse(message);

return true;

}

else

return false;

}

通过正则表达式判断是否匹配,不仅可以用来做简单的判断匹配,还可以进行精确的匹配,如判断是否是六位的数字字符串,Email匹配等。正则表达式是一种很好的方法。

protected void Button1_Click(object sender,EventArgs e)

{

string message=TextBox1.Text.Trim();

isNumeric(message);//判断字符串是否为5为整数字符串

}

protected void isNumeric(string message)

{

if(message!=""&&Regex.IsMatch(message,"^\d{5}$"))

{

//成功

Page.ClientScript.RegisterStartupScript(this.GetType(),"","&lt;script&gt;alert

('匹配通过!确实是五位的整数字符串')&lt;/script&gt;");

}

else

//失败

Page.ClientScript.RegisterStartupScript(this.GetType(),"","&lt;script&gt;alert

('匹配失败!')&lt;/script&gt;");

}

扩展资料:

include用法:

#include命令预处理命令的一种,预处理命令可以将别的源代码内容插入到所指定的位置;可以标识出只有在特定条件下才会被编译的某一段程序代码;可以定义类似标识符功能的宏,在编译时,预处理器会用别的文本取代该宏。

插入头文件的内容

#include命令告诉预处理器将指定头文件的内容插入到预处理器命令的相应位置。有两种方式可以指定插入头文件:

1、#include&lt;文件名&gt;

2、#include"文件名"

本回答被网友采纳
第2个回答  推荐于2017-09-06

使用字符串的IndexOf方法查找,找到返回正确的位置下标,未找到返回-1

举例:

string str = "我爱北京天安门";
            int index = str.IndexOf("爱");
            if (index > -1)
            {
                Console.Write("找到了");
            }
            else {
                Console.Write("未找到");
            }
            Console.Read();

第3个回答  推荐于2017-09-03
  你这里用到的是数组 当然不能这样写啦 要用for循环或者foreach遍历出来 一遍一遍的查出来 你这样当然会报错啊. 像下面这样写

  
  string Number = "0";
  bool exists=false;
  string[] str = { "0", "0.", "-0.", "-0" };
  for (int i = 0; i < str.Length; i++)
  {
  exists = Number.Contains(str[i]);
  break;
  }
  if (exists)
  {
  Number = "包含";
  }
  Console.WriteLine(Number);

我用是2010 不知道2005有没有Contains这个方法
希望能帮助到你!本回答被提问者采纳
第4个回答  2013-01-04
首先,如果过滤多个字符串,那就要遍历字符串数组。然后再做判断。
例如:
for(int i=0;i<str.length;i++)
{
if(Number.Contains(str[i]))
{
Number = "";

//此处可以做多个处理。例如替换掉匹配的部分字符串,,组成新的字符串,而不是整个清空。

}

}
相似回答