• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C#web获取字符串中指定字符串的个数与替换字符串,更新"获取随机字符串" ...

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

indexof用法

public static int indexOf (字符串/字符,int从第几位开始,int共查几位)

 例如:string a = "abcdabcdd";
a.IndexOf ("d",0,) 和a.IndexOf ("d",1,) 和a.IndexOf ("d",2,) 相同;结果是3 表示从字符串的第x位开始查,d字符在整个字符串中排第几位,注意,字符串的第一位算为0,依次才是1,2,3,,,,

response.write(a.IndexOf ("d",4,2)) 结果为-1,表示从前向后 定位 d 从第4 位开始查,只查2位,没有便不查了,即从第4位查到第6位;所以结果为-1,表示查不到你要查的字符

简要表示: 从前向后 定位 d 第一次出现在字符串中的位置

a.lastindexof("d",0)则返回-1,a.lastindexof("d",3)=a.lastindexof("d",5)返回3,a.lastindexof("d",7)返回7

表示从顺数字符串的从左到右搜索"d",返回最后一个d在字符串中的位置(我理解为索引值).上面例子 a.lastindexof("d",3)表示从左到右数 0 1 2 3 刚好是3,如果012345这几位则也是返回3.因为在这几位中只有索引3对应的位置上是d.  ok啦.明白啦 

表示:"返回指定字符在此字符串中最后一次出现处的索引 ",应用可见 抓天气预报的 应用例子

如果查找符合要求的字符串,方法1

string   s   =   "i am ok";  
        int   m   =   s.Length;  
         s   =   s.Replace("ok","");//把ok替换为空
        Response .Write (m-s.Length );
返回是 7-5=2 结果是2

方法2:有需要用正则表达式

using   System.Text.RegularExpressions

string  aa=" [email protected]";

string emailflag = "@";
   if(Regex.Matches(aa,emailflag).Count)==0

  else ....

但是在代码

 string a = "[email protected]";
        Response.Write(Regex.Matches(a, "@").Count );  //输出1
        Response.Write(Regex.Match(a, ".").Length);//输出1

中,输出 1 1

如果是Response.Write(Regex.Matches(a, ".").Count ); 则输出却是12,表示a字符串的长度 

好好总结下先。正则表达式大大的有用,要好好研究哦。

在.NET中字符串替换有以下五种方法:
1:使用String.Replace函数替换,但不支持大小写。
2:(数据多的时候效率最快)正则System.Text.Regex 替换,用RegExpOption修改是否支持大小写。
3:在小数据的情况下,使用String.SubString 和+可以实现间接替换。
4:导入Microsoft Visual Basic RunTime (Microsoft.VisualBasic.DLL) 使用Strings.Replace速度很快。
5:参照反射Reflector.FileDisassembler配合Strings.Split and Strings.Join 等实现,速度同5。

例如:正则

using System.Text.RegularExpressions;

string str = "aaaa,caa";
str = Regex.Replace(str,"aa","bb"); 但实际应用中如news_pic = Regex.Replace( news_pic ,"\","/")出错,因为 \ 为换行符号,

所以用news_pic = news_pic.Replace("\\", "/");解决.如果谁能解决这问题,请给我留言谢谢了。

 

至于经典的随机字符串的获得.我们可以充分利用随机函数,下面以一般的登陆面板,产生验证码为例说明以下:

void get_yanzheng_ma()  //定义函数
    {
        Random ro = new Random();
        //yanzhengma.Text = ro.Next().ToString().Substring(0, 4);        如果只要这行,则只产生4位数字作为随机字符.


        string str = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";//共有62个字符
        int str_index;
        for (int i = 0; i <4; i++)
        {
           str_index=System.Convert.ToInt32(ro.Next().ToString().Substring(0, 2));
            if ( str_index >= 61)
            {
                str_index = 100 - str_index;
            }
          yanzhengma.Text+= str.Substring(str_index , 1);   //生成字符串
        }
        yanzheng_string = yanzhengma.Text;//传递给变量以便验证
    }

yanzheng_string变量提前定义好,一旦调用void get_yanzheng_ma() ,则返回yanzheng_string这个4位的随机字符串了,简单吧,

我想要返回值,也可以写成static string get_yanzheng(string str_test){return();}的形式吧


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
POJC++程序设计编程题#1编程作业—运算符重载发布时间:2022-07-13
下一篇:
C#中Tuple的使用发布时间:2022-07-13
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap