初识串

串是由零个或多个字符组成的有限序列。串中字符的个数称为串的长度。

串中任意个连续的字符组成的子序列称为该串的子串。包含子串的串相应地称为主串。通常称字符在序列中的序号为该字符在串中的位置。子串的首字符在主串中首次出现的位置定义为子串在主串中的位置。

串的逻辑结构和线性表十分相似,区别仅仅在于串的数据对象约束为字符集。然而两者的基本操作有很大差别。线性表中,基本以单个元素来进行操作;而串中多半以串的整体也就是子串来作为操作对象。

javascript有很多串的方法吗,具体的请查阅api。

https://developer.mozilla.org/en-US/

这里我们挑一个来看看,比如indexOf,该方法返回String对象内第一次出现子字符串位置。如果没有找到子字符串,则返回-1。我们来模拟一下这个方法的实现:

这个思想其实很简单,就是在主串中取从第i个字符起,长度和要寻找的串相等的子串进行比较,直到找到为止。所以说我们在运用一些原生的api时,如果能够知道其实现的原理,就可以更好的驾驭它们。当然,该方法还可以改进,我在以后的文章中会介绍的。

时间: 2024-10-11 00:50:06

初识串的相关文章

初识git

初识git 1 安装git 最早Git是在Linux上开发的,很长一段时间内,Git也只能在Linux和Unix系统上跑.不过,慢慢地有人把它移植到了Windows上.现在,Git可以在Linux.Unix.Mac和Windows这几大平台上正常运行了. 要使用Git,第一步当然是安装Git了.根据你当前使用的平台来阅读下面的文字: 1.1 在Linux上安装Git 首先,你可以试着输入git,看看系统有没有安装Git: ``` $ git The program 'git' is curren

Ajax—初识

看DRP的过程,重新学习了一遍Ajax,更深刻的体会到了Ajax所具有的魅力.Ajax是一种技术或者方法,更是一 种艺术.它让我们的程序以一种更完美的姿态呈现在用户面前.下面就让我们一起走进Ajax的世界. 简介 全名: AsynchronousJavaScript and XML. 工作原理: Ajax的工作原理相当于在用户和服务器之间加了-个中间层(AJAX引擎),使用户操作与服务器响应异步化.并不 是所有的用户请求都提交给服务器,像-些数据验证和数据处理等都交给Ajax引擎自己来做,只有确

软考——初识有限自动机

最近一直在忙软件设计师考试,由于没有参加自考,不像自考人员对于软考内容接受起来那么容易.其中第一个让自己头疼的就是FSM(有限状态自动机),视频中是针对题来讲的,而软考书中又都是一些专业术语.一些晦涩的数学式子.软考讲课小组中我又负责讲这部分内容,哎呀!通过查一些资料,理解好多了. 一.专业性的解释(百度百科) 有限状态自动机(FSM "finite state machine" 或者FSA "finite state automaton" )是为研究有限内存的计算

初识jQuery,八字真言“选择元素,对其操作”

jQuery在我印象中,就是很多类似$(),然后昨天开始接触了,觉得很和谐,获取元素比JavaScript简单很多,有意思. 一.开始学习jQuery,下载jQuery库的文件 http://jquery.com/download/ jQuery库有两个版本: 我只是使用这个jQuery库,所以我就只下载了生产版本,足以. 二.开始我的第一个Demo 1.html文件 <!DOCTYPE html> <html> <head> <meta charset=&quo

初识中间件之消息队列

初识中间件之消息队列 测试那点事儿 测试那点事儿 初识中间件之消息队列 1 消息队列概述 消息队列是分布式系统中的重要组件,主要解决应用耦合,异步消息,流量削锋等问题,以实现高性能,高可用,可伸缩和最终一致性架构,是大型分布式系统中不可缺少的中间件. 目前使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ等,比如我之前用过的RabbitMQ以及kafka. 2 消息队列应用场景 在实际应用中,消息队列常用于异步处理.应用解耦.流量削锋

Python学习日志之Python数据结构初识

Python数据结构初识: 一.Python数据结构概述 1.何为数据结构 在程序中,同样的一个或几个数据组织起来,可以有不同的组织方式,也就是不同的存储方式,不同的组织方式就是不同的结构,我们把这些数据组织在一起的结构就叫做数据结构 例如: 有一串字符串:"abc",我们将它重新组织一下,比如通过list()函数将"abc"变成["a","b","c"],那么这个时候数据发生了重组,重组之后的结构就发生了

JVM初识、调优

JVM是按照运行时数据的存储结构来划分内存结构的,JVM在运行java时,将他们划分成几种不同格式的数据,分别存储在不同的区域,这些数据统一称为运行时数据,运行时数据包括java程序本身的数据信息和JVM运行java需要的额外的数据信息. JMM要理解 JVM运行时数据区 程序计数器--------线程私有 java虚拟机栈------线程私有 本地方法栈--------线程私有 Jav堆-------------线程公用 方法区------------线程公用 锁机制 JVM内存分配 1:栈内

TestNG环境搭建以及框架初识

TestNG的英文为Test Next Generation, 听上去好像下一代测试框架已经无法正常命名了的样子,哈哈,言归正传,啥是TestNG呢,它是一套测试框架,在原来的Junit框架的思想基础上开发的新一代测试框架,既然这么牛b,那果断弄来试试.本文主要从安装步骤-->第一个测试例子-->再多一点例子-->框架分析-->suite文件的书写-->总结结束. 安装步骤: 1. 第一步,当然首先是在你的java sdk, eclipse ide, system envir

初识OpenStack(1)

初识OpenStack(1) 首先 先来说说我与openstack的渊源吧,那是在上个月中旬,学张的一个朋友给我打电话说让一起来搞一个云平台,当时也不知道是什么,就很高兴的答应下来了,到了周末,就过去聊关于平台怎样搭建的事情了,却发现无从着手,也就是这一次,才第一次听说了openstack这个名词,于是就在网上买了<OpenStack设计与实现>这本书,开始简单的了解关于这个项目,在上周三,还去参加了一下关于OpenStack的分享会,这次才算对云计算,以及'云'方面的知识才有所了解,也同时,