c indexof的用法(判断字符串是否包含另一个字符)
本文目录
- 判断字符串是否包含另一个字符
- C#中int IndexOf(string value,int startIndex,int count是什么意思
- 您好,如图,indexof(c_name+“=“),要查找字符串,为什么不在c_name+“=“的外面用引号呢
- C# IndexOf 检查多个索引 string a=“asfasdfadf“ 如何得到a的全部索引 不是首个或最后一个
- 求一个C++的 递归 函数 indexOf
判断字符串是否包含另一个字符
indexof() :在字符串中从前向后定位字符和字符串;所有的返回值都是指在字符串的绝对位置,如为空则为- 1string content="as#fjs#fjgkfasdsfsgfhgjgfjgdddd";content.indexof(’#’) =2 //从前向后 定位 # 第一次出现的位置content.indexof(’#’,1) =2 //从前向后 定位 # 从第三个字符串 第一次出现的位置test.indexof(’#’,5,2) =6 //从前向后 定位 # 从第5 位开始查,查2位,即 从第5位到第7位;lastindexof() :在字符串中从后向前定位字符和字符串;、用法和 indexof() 完全相同。判断的话直接这么写就好了:if(content.indexof(’#’) != -1){};else{};
C#中int IndexOf(string value,int startIndex,int count是什么意思
在字符串中查找字符串value,从第startindex位开始,一共找count位,在这其中是否能找到字符串value,如果找到,则返回起始索引位置(即位数减一),如果没找到,则返回-1.例子:string s = "111222";s.IndexOf("12", 0, s.Length);//其含义是:在字符串“111222”中查找“12”,从第1位开始一直到整个字符串结束,结果是2.s.IndexOf("12", 0, 2);//其含义是:在字符串“111222”中查找“12”,从第1位开始,只找前两位,因为前两位是“11”,没有“12”所以结果是-1.s.IndexOf("12", 2, 3);//其含义是:在字符串“111222”中查找“12”,从第3位开始,只找3位,因为这个范围内的字符串是“122”,找到了“12”所以结果是2.
您好,如图,indexof(c_name+“=“),要查找字符串,为什么不在c_name+“=“的外面用引号呢
c_name是传进来的参数 一个变量一旦写成"c_name" 那代表它的值是"c_name" 记住c_name+"=" 中的+只是个连接符 如果c_name="example",var value = c_name+"=" 那么value = "example="
C# IndexOf 检查多个索引 string a=“asfasdfadf“ 如何得到a的全部索引 不是首个或最后一个
private void button1_Click(object sender, EventArgs e) { int a =GetAllIndex("asfasdfadf", ’a’); } private int GetAllIndex(string str, char c) { List《int》 retList = new List《int》(); int nowIndex = -1; while (str.IndexOf(c) 》 -1) { int subIndex = str.IndexOf(c); nowIndex = subIndex + nowIndex + 1; retList.Add(nowIndex); str = str.Substring(subIndex + 1); } return retList.ToArray(); }测试过,没有问题。以上,若还有疑问,可以Hi我。
求一个C++的 递归 函数 indexOf
我也发一个版本的吧,其实这个根本不用递归处理就可以。 #include 《stdio.h》#include 《assert.h》int IndexOf(const char* strSource, const char* strSub){ //断言检测 assert((NULL != strSource) && (NULL != strSub)); int i = 0; int iIndex = 0; int j = 0; bool bFlag = false; bool bPrepare = false; //递归 while((’\0’ != *(strSource+i)) && (false == bFlag)) { //是否已是子串的末尾,防止子串是空串 if((’\0’ == *(strSub+j)) && (0 != j)) { bFlag = true; } else if(*(strSub+j) == *(strSource+i)) //节点相等 { if(false == bPrepare) { iIndex = i; bPrepare = true; } i++; j++; //IndexOf(strSource+i, strSub+j); } else //不等,继续找首节点 { bPrepare = false; i++; j=0; } } //收尾情况的判断 if((’\0’ == *(strSource+i)) && (’\0’ == *(strSub+j))) { return iIndex; } else if(false == bFlag) { return -1; //没有查找到该子串 }return iIndex; //因为i起始值为0,找到该子串}int main(int argc, char ** argv){ char szSource = "abcdefghijklmn"; char szSub1 = "fg"; char szSub2 = "cd"; char szSub3 = "ff"; char szSub4 = "jkl"; char *szSub5 = NULL; char szSub6 = ""; //空字符串,返回的是0 char szSub7 = "abc"; printf("index is %d\n", IndexOf(szSource, szSub1)); printf("index is %d\n", IndexOf(szSource, szSub2)); printf("index is %d\n", IndexOf(szSource, szSub3)); printf("index is %d\n", IndexOf(szSource, szSub7)); //printf("index is %d\n", IndexOf(szSource, szSub5)); //断言就会发挥作用了 printf("index is %d\n", IndexOf(szSource+IndexOf(szSource+IndexOf(szSource,szSub2),szSub1), szSub4)); return 0;}输出结果:index is 5index is 2index is -1index is 0index is 6 注释掉递归部分IndexOf(strSource+i, strSub+j)结果如下:index is 5index is 2index is -1index is 0index is 6两者结果是一样的,所以根本用不着什么递归处理方式的。
更多文章:
免费迅雷会员激活码(求一个迅雷会员激活码 一天的都行 体验码也可以 就用一天)
2024年6月21日 08:01
win10最适合打游戏的版本(win10玩梦幻哪个版本兼容)
2024年8月30日 06:55
极品飞车18手机版(极品飞车18 怎么玩 怎样才能得到好车 我怎么跑也不解锁车啊)
2024年6月28日 05:24
机器学习 为什么会使用梯度下降法?2、牛顿法和最速下降法只能求解无约束优化,有约束的非线性规划有哪些求解方法
2024年7月24日 12:18