首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在不使用字符串方法- contains、indexOf、lastIndexOf的情况下,确定子字符串是否在字符串中

在不使用字符串方法 contains、indexOf、lastIndexOf 的情况下,可以使用循环遍历字符串的方式来确定子字符串是否在字符串中。

具体步骤如下:

  1. 首先,获取待检查的字符串和子字符串。
  2. 使用两个指针,一个指向待检查字符串的起始位置,另一个指向子字符串的起始位置。
  3. 进行循环遍历,比较两个指针所指向的字符是否相等。
  4. 如果相等,则同时向后移动两个指针,继续比较下一个字符。
  5. 如果不相等,则将待检查字符串的指针回退到上一次比较的位置的下一个字符处,子字符串的指针回退到起始位置,重新开始比较。
  6. 重复步骤3至5,直到子字符串的指针达到子字符串的末尾,或者待检查字符串的指针达到待检查字符串的末尾。
  7. 如果子字符串的指针达到子字符串的末尾,则说明子字符串在待检查字符串中存在;否则,说明子字符串不在待检查字符串中。

这种方法的时间复杂度为O(n*m),其中n为待检查字符串的长度,m为子字符串的长度。

以下是一个示例代码(使用Python语言):

代码语言:txt
复制
def isSubstring(string, substring):
    i = 0
    j = 0
    while i < len(string) and j < len(substring):
        if string[i] == substring[j]:
            i += 1
            j += 1
        else:
            i = i - j + 1
            j = 0
    if j == len(substring):
        return True
    else:
        return False

# 示例用法
string = "Hello, world!"
substring = "world"
result = isSubstring(string, substring)
print(result)  # 输出:True

在腾讯云的产品中,与字符串处理相关的产品有云函数(Serverless Cloud Function)和人工智能相关的产品如腾讯云自然语言处理(NLP)等,可以根据具体需求选择适合的产品。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【Java】String类

字符串常量池 注意:字符串是引用数据类型,引用保存是内存地址 我们声明字符串常量都保存在字符串常量池中, 声明相同字符串不会重复创建,而是给予相同指针, jdk7之前常量池方法,jdk7之后将其放到了堆空间...查找 (13)boolean contains(xx):是否包含xx (13)int indexOf(xx):从前往后找当前字符串xx,即如果有返回第一次出现下标,要是没有返回-1 (14)int...indexOf(String str, int fromIndex):返回指定子字符串在此字符串第一次出现处索引,从指定索引开始 (15)int lastIndexOf(xx):从后往前找当前字符串...查找 (17)boolean contains(xx):是否包含xx (18)int indexOf(xx):从前往后找当前字符串xx,即如果有返回第一次出现下标,要是没有返回-1 (19)int...indexOf(String str, int fromIndex):返回指定子字符串在此字符串第一次出现处索引,从指定索引开始 (20)int lastIndexOf(xx):从后往前找当前字符串

29520

js indexOf()用法

大家好,又见面了,我是你们朋友全栈君。 indexOf() 方法可返回某个指定字符串字符串首次出现位置。...如果它比最大字符位置索引还大,则它被当作最大可能索引 Java字符串中子串查找共有四种方法,如下: 1、int indexOf(String str) :返回第一次出现定子字符串在此字符串索引...2、int indexOf(String str, int startIndex):从指定索引处开始,返回第一次出现定子字符串在此字符串索引。...3、int lastIndexOf(String str) :返回在此字符串中最右边出现定子字符串索引。...4、int lastIndexOf(String str, int startIndex) :从指定索引处开始向后搜索,返回在此字符串中最后一次出现定子字符串索引。

4.1K20

常量池和堆区别_字符串常量池还是方法

Class文件结构,最头4个字节用于 存储魔数 (Magic Number),用于确定一个文件是否能被JVM接受,再接着4个字节用于 存储版本号,前2个字节存储次版本号,后2个存储主版本号,再接着是用于存放常量常量池常量池主要用于存放两大类常量...str1引,这样,str1指向了堆创建这个”aaa”字符串对象。...博主一定会在第一时间参与讨论 4.1常量池和字符串常量池版本变化 JDK1.7之前运行时常量池逻辑包含字符串常量池存放在方法区, 此时hotspot虚拟机对方法实现为永久代 JDK1.7...字符串常量池被从方法区拿到了堆, 这里没有提到运行时常量池,也就是说 字符串常量池被单独拿到堆,运行时常量池剩下东西还在方法区, 也就是hotspot永久代 JDK1.8 hotspot移除了永久代用元空间...其中它做事情是:首先去判断该字符串是否常量池中存在,如果存在返回常量池中字符串,如果在字符串常量池中不存在,先在字符串常量池中添加该字符串,然后返回引用地址 例子1: String s1 =

1.1K30

String类常用方法(重要)

Java String方法非常多也非常实用,而且是经常要用到,写得多了就能记住了哈(记不住也是正常,翻一下api文档,翻一下笔记) int length():返回字符串长度: return value.length...startsWith(String prefix, int toffset):测试此字符串从指定索引开始字符串是否以指定前缀开始 boolean contains(CharSequence s):...当且仅当此字符串包含指定 char 值序列时,返回 true int indexOf(String str):返回指定子字符串在此字符串第一次出现处索引 int indexOf(String str..., int fromIndex):返回指定子字符串在此字符串第一次出现处索引,从指定索引开始 int lastIndexOf(String str):返回指定子字符串在此字符串中最右边出现处索引...int lastIndexOf(String str, int fromIndex):返回指定子字符串在此字符串中最后一次出现处索引,从指定索引开始反向搜索 String replace(char

47410

C++ 无序字符串查找所有重复字符【两种方法

参考链接: C++程序,找出一个字符ASCII值 C++ 无序字符串查找所有重复字符   Example:给定字符串“ABCDBGAC”,打印“A B C”  #include <iostream...    string s = a;     for (int i = 0; i < s.size() - 1; i++)     {         if (s[i] == '#') //判断i指针指向是否为输出过字符...            continue;         int m = 1; //判断j指针指向是否为输出过字符         for (int j = i + 1; j <= s.size...                if (m == 1)                     cout << s[i] << " ";                 s[j] = '#'; //对输出过字符做标记...                m = 0;      //对输出过字符做标记             }         }     } } void PrintIterateChar2(const

3.7K30

关于string,stringbuffer_toString

4、String两种实例化方式对比 通过字面量方式为字符串赋值时,此时字符串存储方法字符串常量池中; 通过new+构造器方式实例化字符串时,字符串对象存储,但是字符串值仍然存储方法常量池中...boolean contains(CharSequence s):判断当前字符串是否包含指定字符串 int indexOf(String str):返回指定子字符串在当前字符串第一次出现处索引...int indexOf(String str, int fromIndex):返回从指定索引后,指定子字符串在当前字符串第一次出现处索引 int lastIndexOf(String str):...注:indexOflastIndexOf方法如果未查找到指定子字符串时,返回值都为-1。...offset, xxx):指定位置插入指定内容 StringBuffer reverse() :把当前字符序列逆转 public int indexOf(String str) : 返回指定子字符串在当前字符串第一次出现处索引

54630

一天学完sparkScala基础语法教程六、字符串(idea版本)

Scala ,String 是一个不可变对象,所以该对象不可被修改。这就意味着你如果修改字符串就会产生一个新字符串对象。 但其他对象,如数组就是可变对象。...String 方法 下表列出了 java.lang.String 中常用方法,你可以 Scala 中使用: 序号 方法及描述 1 char charAt(int index) 返回指定位置字符 2...indexOf(int ch) 返回指定字符在此字符串第一次出现处索引 17 int indexOf(int ch, int fromIndex) 返回在此字符串第一次出现指定字符处索引,从指定索引开始搜索...18 int indexOf(String str) 返回指定子字符串在此字符串第一次出现处索引 19 int indexOf(String str, int fromIndex) 返回指定子字符串在此字符串第一次出现处索引...str) 返回指定子字符串在此字符串中最右边出现处索引 24 int lastIndexOf(String str, int fromIndex) 返回指定子字符串在此字符串中最后一次出现处索引,从指定索引开始反向搜索

52920

020:举几个StringAPI以及案例

split:字符串分割,例如将一个字符串adbccc,dddd,7778,999按照”,“分隔,就可以使用这个方法; replace:字符串替换,将字符串定子串全部替换为新子串 replaceAll...; trim:将字符串两边空格去掉,为了确保将要处理字符串两边没有空格,可以这个API操作; conact:字符串连接,前面一篇文分钟详细讲过了 contains:查看字符串包含关系,进行模糊匹配时候...,可以这个方法判断A字符串是否包含B字符串indexOf:获取某个字符下标,给定一个字符,查看该字符字符串位置,如果没有的话返回-1; isEmpty:看某个字符串对象是否为空字符串 startsWith...重载版本参数增加了偏移量 返回boolean结果,以表明该String是否以此参数开头 endsWith() 可能后缀String 表明该String是否以此参数结尾 indexOf(),lastIndexOf...lastIndexOf()则是返回该参数该String最后一个索引 substring() 重载版本:起始所以,起始索引+终点索引 返回参数指定范围内字符序列,是一个新String conact

47830

StringUtils常用方法

String overlay(String str,String overlay,int start,int end):另一个字符串覆盖一个字符串一部分。...6.1、判断字符串是否包含指定字符或字符序列 //区分大小写 StringUtils.contains(null, 'a'); // false StringUtils.contains...StringUtils.containsAny("abc", "xy");// false StringUtils.containsAny("abc", "Ax");// false 6.3、判断字符串是否不包含指定字符或指定字符串字符...StringUtils.remove("queued", "ue") //"qd" StringUtils.remove("queued", "zz") //"queued" 9、查询索引 StringUtils获取字符或字符序列字符串中出现索引下标的方法主要有...9.1、获取指定字符或字符序列字符串第一次出现索引 若字符串不包含该字符或字符序列,则返回-1,若字符串或字符序列为""或null,也返回-1((但字符串和字符序列都为""情况下,则返回0)。

3.8K30

Scala 字符串(十)

Scala 字符串类型实际上是 Java String,它本身没有 String 类。 Scala ,String 是一个不可变对象,所以该对象不可被修改。...indexOf(String str)返回指定子字符串在此字符串第一次出现处索引 19 int indexOf(String str, int fromIndex)返回指定子字符串在此字符串第一次出现处索引...(int ch, int fromIndex)返回指定字符在此字符串中最后一次出现处索引,从指定索引处开始进行反向搜索 23 int lastIndexOf(String str)返回指定子字符串在此字符串中最右边出现处索引...24 int lastIndexOf(String str, int fromIndex)返回指定子字符串在此字符串中最后一次出现处索引,从指定索引开始反向搜索 25 int length()返回此字符串长度...other, int ooffset, int len)测试两个字符串区域是否相等 29 String replace(char oldChar, char newChar) 返回一个新字符串,它是通过

92920
领券