字符串 订阅
字符串主要用于编程,概念说明、函数解释、用法详述见正文,这里补充一点:字符串在存储上类似字符数组,所以它每一位的单个元素都是可以提取的,如s=“abcdefghij”,则s[1]=“b”,s[9]="j",而字符串的零位正是它的长度,如s[0]=10(※上述功能Ansistring没有。),这可以给我们提供很多方便,如高精度运算时每一位都可以转化为数字存入数组。 展开全文
字符串主要用于编程,概念说明、函数解释、用法详述见正文,这里补充一点:字符串在存储上类似字符数组,所以它每一位的单个元素都是可以提取的,如s=“abcdefghij”,则s[1]=“b”,s[9]="j",而字符串的零位正是它的长度,如s[0]=10(※上述功能Ansistring没有。),这可以给我们提供很多方便,如高精度运算时每一位都可以转化为数字存入数组。
信息
外文名
Character string
拼    音
zi fu chuan
简    称
串(String)
释    义
编程语言中表示文本的数据类型
中文名
字符串
记    作
s=“a1a2···an”(n>=0)
字符串简介
字符串或串(String)是由数字、字母、下划线组成的一串字符。一般记为 s=“a1a2···an”(n>=0)。它是编程语言中表示文本的数据类型。在程序设计中,字符串(string)为符号或数值的一个连续序列,如符号串(一串字符)或二进制数字串(一串二进制数字)。通常以串的整体作为操作对象,如:在串中查找某个子串、求取一个子串、在串的某个位置上插入一个子串以及删除一个子串等。两个字符串相等的充要条件是:长度相等,并且各个对应位置上的字符都相等。设p、q是两个串,求q在p中首次出现的位置的运算叫做模式匹配。串的两种最基本的存储方式是顺序存储方式和链接存储方式。
收起全文
精华内容
下载资源
问答
  • Oracle中字符串截取最全方法总结

    万次阅读 多人点赞 2018-08-30 18:10:42
    substr 函数:截取字符串 语法:SUBSTR(string,start,[length]) string:表示源字符串,即要截取的字符串。 start:开始位置,从1开始查找。如果start是负数,则从string字符串末尾开始算起。 length:可选项...
    • substr 函数:截取字符串

    语法:SUBSTR(string,start, [length])

    string:表示源字符串,即要截取的字符串。

    start:开始位置,从1开始查找。如果start是负数,则从string字符串末尾开始算起

    length:可选项,表示截取字符串长度。

    示例

    SELECT SUBSTR('Hello SQL!', 1) FROM dual     --截取所有字符串,返回'Hello SQL!'
    SELECT SUBSTR('Hello SQL!', 2) FROM dual     --从第2个字符开始,截取到末尾。返回'ello SQL!'
    SELECT SUBSTR('Hello SQL!', -4) FROM dual    --从倒数第4个字符开始,截取到末尾。返回'SQL!'
    SELECT SUBSTR('Hello SQL!', 3, 6) FROM dual  --从第3个字符开始,截取6个字符。返回'llo SQ'
    SELECT SUBSTR('Hello SQL!', -4, 3) FROM dual --从倒数第4个字符开始,截取3个字符。返回'SQL'
    • instr 函数:返回子字符串在源字符串中的位置

    语法:INSTR(string,child_string,[start],[show_time])

    string:表示源字符串。

    child_string:子字符串,即要查找的字符串。

    start:可选项,开始位置,默认1开始。如果为负数,则从右向左检索。

    show_time:可选项,表示子字符串第几次出现在源字符串当中,默认1次,负数则报错

    示例

    --表示从源字符串'city_company_staff'中第1个字符开始查找子字符串'_'第1次出现的位置
    SELECT INSTR('city_company_staff', '_') FROM dual    --返回5
    
    --表示从源字符串'city_company_staff'中第5个字符开始查找子字符串'_'第1次出现的位置
    SELECT INSTR('city_company_staff', '_', 5) FROM dual    --返回5
    
    --表示从源字符串'city_company_staff'中第5个字符开始查找子字符串'_'第1次出现的位置
    SELECT INSTR('city_company_staff', '_', 5, 1) FROM dual    --返回5
    
    --表示从源字符串'city_company_staff'中第3个字符开始查找子字符串'_'第2次出现的位置
    SELECT INSTR('city_company_staff', '_', 3, 2) FROM dual    --返回13
    
    --start参数为-1,从右向左检索,查找'_'字符串在源字符串中第1次出现的位置
    SELECT INSTR('city_company_staff', '_', -1, 1) FROM dual    --返回13
    
    --start参数为-6,从右向左检索,查找'_'字符串在源字符串中第2次出现的位置
    SELECT INSTR('city_company_staff', '_', -6, 2) FROM dual    --返回5
    
    • substr 函数结合 instr 函数截取字符串

    现有需求:数据查询处理需要对code进行"拆分"

    code命名规则类似:城市_所属公司_员工职位_员工姓名

    其中,城市、公司、职位、姓民字符串长度不固定,由于字符串长度不固定,只使用substr函数无法实现需求,需配合instr函数定位到字符'_'的位置,然后使用substr函数进行截取。详细见下面例子。

    表数据如下:

    SOURCE_CODE
    BJ_BAIDU_CEO_LY
    SH_BOKE_MANAGER_LWX
    HRB_WM_CASHIER_OYZY

    获取城市

    SELECT
    	SUBSTR (SOURCE_CODE, 1, INSTR (SOURCE_CODE, '_', 1, 1) - 1) AS CITY
    FROM
    	TABLE_CODE_TEST

    结果

    解释:此处截取源字符串SOURCE_CODE,从第1个字符开始,由于代表城市的code长度不固定,我们无法确定截取几个字符,所以使用instr函数判断第一个'_'字符的位置,进而确定每个SOURCE_CODE截取几个字符串。

    那为什么减1呢

    是因为INSTR (SOURCE_CODE, '_', 1, 1)获取的是源字符串中'_'字符第一次出现的位置,再减1就得出了CITY字符个数。

    获取公司:

    SELECT
    	SUBSTR (
    		SOURCE_CODE, 
    		INSTR (SOURCE_CODE, '_', 1, 1) + 1, 
    		INSTR (SOURCE_CODE, '_', 1, 2) - INSTR (SOURCE_CODE, '_', 1, 1)-1
    	) AS COMPANY
    FROM
    	TABLE_CODE_TEST

    结果:

    解释:截取源字符串,从(第一个'_'出现位置+1)开始,截取个数为:第2个'_'出现位置减去第1个'_'出现位置,此时还多了一个下划线'_',再减去1即可得到代表公司字符串。

    获取姓名:

    SELECT
    	SUBSTR (SOURCE_CODE, INSTR (SOURCE_CODE, '_', 1, 3) + 1) AS STF_NAME
    FROM
    	TABLE_CODE_TEST

    结果:

    解释:截取源字符串,从('_'第3次出现位置+1)开始截取,截取到末尾。

     

    展开全文
  • Java在字符串中查找匹配的子字符串

    万次阅读 多人点赞 2017-05-07 15:25:25
    Java在字符串中查找匹配的子字符串

    示例:
           在源字符串“You may be out of my sight, but never out of my mind.”中查找“my”的个数。输出:匹配个数为2

    三种方法:
           1.通过String的indexOf方法
           2. 通过正则表达式
           3. 通过String的split方法
    其中第一种方法只能用于精确匹配,第二三种则可以模糊匹配(方法3的参数为正则表达式)。例如:若将child改为“.my.”,第一种方法失效。

    方法1:通过String的indexOf方法

    public int indexOf(int ch, int fromIndex) :返回在此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索。如果不存在则返回 -1。

    //方法1、通过String的indexOf(String str, int fromIndex)方法
    	private void matchStringByIndexOf( String parent,String child )
    	{
    		int count = 0;
    		int index = 0;
    		while( ( index = parent.indexOf(child, index) ) != -1 )
    		{
    			index = index+child.length();
    			count++;
    		}
    		System.out.println( "匹配个数为"+count );							  //结果输出
    	}
    

    方法2:通过正则表达式

    类 Pattern :正则表达式的编译表示形式。
           指定为字符串的正则表达式必须首先被编译为此类的实例。然后,可将得到的模式用于创建 Matcher 对象,依照正则表达式,该对象可以与任意字符序列匹配。执行匹配所涉及的所有状态都驻留在匹配器中,所以多个匹配器可以共享同一模式。
           因此,典型的调用顺序是
           Pattern p = Pattern.compile(“a*b”);
           Matcher m = p.matcher(“aaaaab”);
           boolean b = m.matches();

    • 类 Matcher:通过调用模式的 matcher 方法从模式创建匹配器。创建匹配器后,可以使用它执行三种不同的匹配操作:
             matches 方法尝试将整个输入序列与该模式匹配。
             lookingAt 尝试将输入序列从头开始与该模式匹配。
             find 方法扫描输入序列以查找与该模式匹配的下一个子序列
    //方法2、通过正则表达式
    	private void matchStringByRegularExpression( String parent,String child )
    	{
    		
    		int count = 0;
    		Pattern p = Pattern.compile( child );
    		Matcher m = p.matcher(parent);
    		while( m.find() )
    		{
    			count++;
    			System.out.println( "匹配项" + count+":" + m.group() ); //group方法返回由以前匹配操作所匹配的输入子序列。
    		}
    		System.out.println( "匹配个数为"+count );							  //结果输出
    	}
    

    方法3:通过String的split方法

    public String[] split(String regex):根据给定正则表达式的匹配拆分此字符串。 该方法的作用就像是使用给定的表达式和限制参数 0 来调用两参数 split 方法。因此,所得数组中不包括结尾空字符串。

    //方法3、通过split方法
    	private void matchStringBySplit( String parent,String child )
    	{
    		String[] array = parent.split(child);
    		System.out.println( "匹配个数为" + (array.length-1) );
    	}
    

    完整代码:

    import java.util.Arrays;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    
    /**
     * 在字符串中查找匹配的子字符串
     * author:大能豆   QQ:1023507448
     * case :
     * 源字符串:You may be out of my sight, but never out of my mind.
     * 要查找的子字符串:my
     * 输出:匹配个数为2
     */
    public class MatchString {
    
        //方法1、通过String的indexOf(String str, int fromIndex)方法
        private void matchStringByIndexOf(String parent, String child) {
            int count = 0;
            int index = 0;
            while ((index = parent.indexOf(child, index)) != -1) {
                index = index + child.length();
                count++;
            }
            System.out.println("匹配个数为" + count);//结果输出
        }
    
        //方法2、通过正则表达式
        private void matchStringByRegularExpression(String parent, String child) {
            int count = 0;
            Pattern p = Pattern.compile(child);
            Matcher m = p.matcher(parent);
            while (m.find()) {
                count++;
                System.out.println("匹配项" + count + ":" + m.group()); //group方法返回由以前匹配操作所匹配的输入子序列。
            }
            System.out.println("匹配个数为" + count); //结果输出
        }
    
        //方法3、通过split方法,但此方法需考虑子字符串是否是在末尾,若在末尾则不需要-1
        private void matchStringBySplit(String parent, String child) {
            String[] array = parent.split(child);
            System.out.println("匹配个数为" + (array.length - 1));
        }
    
        public static void main(String[] args) {
            MatchString ms = new MatchString();
            String parent = "You may be out of my sight, but never out of my mind.";
            String child = "my";
    
            System.out.println("------通过indexOf-------");
            ms.matchStringByIndexOf(parent, child);  //调用方法1
    
            System.out.println("------通过正则表达式-------");
            ms.matchStringByRegularExpression(parent, child);  //调用方法2
    
            System.out.println("------通过split方法-------");
            ms.matchStringBySplit(parent, child);  //调用方法3
    
            String test = "abcdbdasda";
            String[] as = test.split("a");
            System.out.println(Arrays.toString(as));
        }
    
    }
    
    
    展开全文
  • python 去除字符串中指定字符

    万次阅读 多人点赞 2018-08-06 14:37:52
    python中的strip()可以去除头尾指定字符 ss = '我的电话是18827038663,也是微信号,\n 请加入,谢谢\n\n\n' print(ss.strip('\n')) 结果: 我的电话是18827038663,也是微信号, 请加入,谢谢 可以看到只能...

    python中的strip()可以去除头尾指定字符

    ss = '我的电话是18827038663,也是微信号,\n 请加入,谢谢\n\n\n'
    print(ss.strip('\n'))

    结果:

    我的电话是18827038663,也是微信号,
     请加入,谢谢

    可以看到只能删除头尾指定字符。

    想要去除中间字符,可以使用replace()函数

    ss = '我的电话是18827038663,也是微信号,\n 请加入,谢谢\n\n\n'
    print(ss.replace('\n', ''))

    结果:

    我的电话是18827038663,也是微信号, 请加入,谢谢

    note:

    1. strip(str)

    基本用法:ss.strip(rmStr)

    ss.strip()参数为空时,默认去除ss字符串中头尾\r, \t, \n, 空格等字符;参数为某个字符时,可以去掉头尾指定字符噢,例如:

    输入:

    ss = '我的电话是18827038663,也是微信号,请加入,谢谢啦啦嗯'
    print(ss.strip('嗯啦'))

    运行结果:

    我的电话是18827038663,也是微信号,请加入,谢谢

    需要注意strip是按字符级别匹配的,只要头尾出现字符集中的字符,就会被strip掉,而不是整段字符匹配的。

    ss.lstrip()删除ss字符串开头处的指定字符,ss.rstrip()删除ss结尾处的指定字符

    2. replace(old, new[, max])

    基本用法:ss.replace(old, new[, max])

    old是原字符串中的字符,new是需要替换为的新字符串,max是最大匹配次数,匹配时从左到右最多max次。一般情况下不设置max的值,默认全部替换。

    输入:

    ss = 'old old string'
    ret = ss.replace('old', 'new', 1)
    print(ret)

    输出:

    new old string

     

     

    展开全文
  • 常用的字符串截取方法

    万次阅读 2019-03-27 17:33:24
    1 取字符串的前i个字符 str=str.substring(0,i); str=str.remove(i,str.Length-i); 2 去掉字符串的前i个字符: str=str.remove(0,i); str=str.substring(i); 3 从右边开始取i个字符: str=str.substring(str.Length-...

    字符串截取:

    1 取字符串的前i个字符
       str=str.substring(0,i);
    
    2 去掉字符串的前i个字符
      str=str.substring(i); 
    
    3 从右边开始取i个字符
      str=str.substring(str.length()-i); 
      str=str.substring(str.length()-i,str.length()); 
    
    4 从右边开始去掉i个字符
      str=str.substring(0,str.Length-i);
    
    5 如果字符串中有"abc"则替换成"ABC"
     str=str.replace("abc","ABC");
    

    案例:

    public class Test { 
        public static void main(String[] args) {
            String str = "abcde12345MNBVC*()&%";
            
            //截取字符串前5位
            String substring1= str.substring(0,5);
            
            //截掉字符串前5位
            String substring2 = str.substring(5);
            
            //截取字符串后5位
            String substring3 = str.substring(str.length()-5);
            String substring4 = str.substring(str.length()-5,str.length());
            
            //截掉字符串后5位
            String substring5 = str.substring(0,str.length()-5);
            
             //截去字符串从第6位到第9位的字符串(从0 开始)
           	String substring6 = str.substring(6,10);
    		
    		//将字符串abcde 替换成ABCDE
            String string6 =str.replace("abcde","ABCDE");
            
            System.out.println(substring1);
            System.out.println(substring2);
            System.out.println(substring3);
            System.out.println(substring4);
            System.out.println(substring5);
            System.out.println(substring6);
            System.out.println(string6);
            
        }
    }
    
    
    结果:
    abcde
    12345MNBVC*()&%
    *()&%
    *()&%
    abcde12345MNBVC
    2345
    ABCDE12345MNBVC*()&%
    
    

    总结:

    字符串 语法
    截掉前 i 个字符串 str.substring(i)
    截取从 i 到 j 个字符串(字符串从0开始数, 包括 i 不包括 j ) str.substring(i,j)
    展开全文
  • c语言比较两个字符串是否相等strcmp

    万次阅读 多人点赞 2017-03-27 13:38:46
    C语言提供了几个标准库函数,可以比较两个字符串是否相同。以下是用strcmp()函数比较字符串的一个例子: #include #include int main(void) { char str_1[] = "abc"; char str_2[] = "abc"; char str_3[] = ...
  • 字符串字符串数组

    万次阅读 多人点赞 2019-03-04 13:42:04
    文章目录字符串字符串输出字符串常用方法计算字符串的长度字符串拼接字符串拷贝字符串比较字符串数组 字符串 用双引号引起来的就是字符串字符串由字符组成 字符串使用%s格式化输出 字符串以\0结尾,没有\0就不是...
  • Java中字符串indexof() 的使用方法

    万次阅读 多人点赞 2016-07-05 15:48:34
    Java中字符串中子串的查找共有四种方法(indexof()) indexOf 方法返回一个整数值,指出 String 对象内子字符串的开始位置。如果没有找到子字符串,则返回-1。 如果 startindex 是负数,则 startindex 被当作零。如果...
  • Python中的字符串切片(截取字符串

    万次阅读 多人点赞 2018-09-17 23:20:16
    字符串索引示意图 字符串切片也就是截取字符串,取子串 Python中字符串切片方法 字符串[开始索引:结束索引:步长] 切取字符串为开始索引到结束索引-1内的字符串 步长不指定时步长为1 字符串[开始索引:结束...
  • C语言 16行代码实现字符串中指定字符串替换

    万次阅读 多人点赞 2018-08-03 17:05:35
    支持: 1.等长字符串替换 2.长字符串替换为短字符串 3.短字符串替换为长字符串 4.中文替换 .../* 功 能:将str字符串中的oldstr字符串替换为newstr字符串 * 参 数:str:操作目标 oldstr:被替换者...
  • C++字符串的拼接

    万次阅读 多人点赞 2019-08-15 14:18:51
    字符串拼接是指将两个字符串连接在一起,形成一个更长的字符串 #include <iostream> int main(int argc,const char* argv[]) { std::string str1 = "Hello ;" std::string str2 = "World!"; //append...
  • C语言字符串输入及输出的几种方式

    万次阅读 多人点赞 2018-02-06 00:12:56
    1.字符串数组+初始化 char s1[]="array"; //字符数组 char s2[6]="array"; //数组长度=字符串长度+1,因为字符串末尾会自动添‘\0‘ printf("%s,%c\n",s1,s2[2]); //array,r 2.字符串指针+初始化 char *sp=...
  • 算法 - 输出一个字符串的全排列(C++)

    万次阅读 多人点赞 2019-02-19 10:19:44
    分享一个大牛的人工智能教程。... * 对于一个字符串"abc"输出它的全排列,第一个字符应该分别为a,b,c;第二个字符,后面应该是除去已输出部分的剩余部分的全排列。 * * 即对于"abc", *...
  • C语言基础——字符串指针(指向字符串的指针)

    万次阅读 多人点赞 2018-07-25 09:57:15
    C语言中没有类似java,python等面向对象的编程语言中string那样的特定的字符串类型,通常是将字符串放在一个字符数组中。 遍历字符串代码: #include&lt;stdio.h&gt; #include&lt;string.h&gt; ...
  •  在实际的应用当中,字符和字符串的操作是最常用的技能。总结下来,提升能力。 一、字符串拷贝 1、memcpy 2、strcpy 区别 二、字符串查找 三、字符串比较 四、字符串截取 1、一种简单而又机智的方法–...
  • MySQL——字符串拆分(含分隔符的字符串截取)

    万次阅读 多人点赞 2018-08-14 15:36:26
    有分隔符的字符串拆分 题目要求 数据库中 num字段值为: 实现的效果:需要将一行数据变成多行 实现的SQL SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('7654,7698,7782,7788',',',help_topic_id+1),',',...
  • java判断字符串是否包含某个字符(串)

    万次阅读 多人点赞 2018-07-28 18:38:18
    本篇地址  ... 判断一个字符串是否包含某个子串的n种方法 startsWith() contains方法 indexOf方法 ...这个方法有两个变体并测试如果一个字符串开头的指定索引指定的前缀或在默认情况下从字符串开...
  • //ArrayBuffer转字符串 function ab2str(u,f) { var b = new Blob([u]); var r = new FileReader(); r.readAsText(b, 'utf-8'); r.onload = function (){if(f)f.call(null,r.result)} } //字符串字符串ArrayBu...
  • contains()判断一个字符串中是否包含某个字符串 starsWith()判断一个字符串中是否以某个字符串开始 endsWith()判断一个字符串中是否以某个字符串结尾 var s = "hello world!";s.starsWith("hello&...
  • 本篇要分享的是关于iOS开发中,字符串简单处理的方法,此部分过于基础,仅作加强记忆、记录使用。 一、截取字符串 进行截取字符串的操作,需求不同截取的方式不同,这里只介绍下面的截取方式。 1、截取下标某一位...
  • python数字转字符串

    万次阅读 2019-03-18 23:20:20
    还是这样简单直接一点,博客的可复阅性也会好一点。 这个点虽然简单,可每次要用到的时候都会想不起来,...str(x ) 将对象 x 转换为字符串 实例: >>> a=0 >>> b=str(a) >>> b '0' ...
  • Java中的substring截取字符串方法

    万次阅读 2018-11-02 10:19:49
    1. 在处理字符串的过程中有很多情况下会遇到需要截取字符串的情况,这个时候使用Java中提供的substring方法来截取就非常方便了 2. 其中比较经常使用到的方法有两个: ① public String substring(intbeginIndex) ...
  • 字符串压缩:利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能。比如,字符串aabcccccaaa会变为a2b1c5a3。若“压缩”后的字符串没有变短,则返回原先的字符串。你可以假设字符串中只包含大小写英文...
  • js把字符串数组合成字符串 js把字符串分割成字符数组
  • 5.7字符串生成器

    万次阅读 2020-02-02 14:16:53
    字符串生成器 若字符串大量增加例如 循环10000次 A+=“666”;则花费计算机资源极大,需要字符串生成器进行优化 步骤 创建字符串生成器 StringBuilder str= new StringBuilder(字符串); append( content ) 该方法...
  • java判断字符串不为空和null的方法

    万次阅读 多人点赞 2018-03-22 14:32:37
    1、 空串”“是长度为0的字符串,它有自己的串长度(0)和内容(空),判断一个字符串为空的方法: if (str.length() == 0); 或 if (str.equals("")); 2、 null串表示目前没有任何对象与...
  • python字符串字符串处理函数及字符串相关操作

    万次阅读 多人点赞 2014-04-12 23:23:25
    http://blog.csdn.net/pipisorry/article/details/42085723字符串介绍python字符串表示Python除处理数字外还可以处理字符串字符串用单撇号或双撇号包裹:&gt;&gt;&gt; 'spam eggs' 'spam eggs' &...
  • 常用JS——string字符串方法

    万次阅读 2018-08-21 10:47:36
    一、关于字符串分割 1、slice(start,end); 关于这个方法,一定要搞懂四个关键点: (1)截取字符串时不包括下标为end的元素。 (2)end是可选参数,没有时,默认从start到结束的所有字符串。 (3)String....
  • public int indexOf(int ch ) :返回指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。 或 public int indexOf(int ch, int fromIndex) :返回从 fromIndex 位置开始查找指定字符在...
  • C语言:字符串数组与字符串指针数组

    万次阅读 多人点赞 2019-04-27 21:46:19
    1,首先,不论是局部,静态还是全局数组都必须在定义的时候初始化,否则就得通过其他方式,eg 循环操作,字符串处理函数strcpy() 2,附以下代码: 主要完成将”I am from china ”倒置为”china from am I”, ...
  • 2.判断一个字符串是否为回文字符串。 #include intmain(void) { chara[100]; inti = 0, j = 0; printf("Please input string:"); gets_s(a,100); while(a[i] != '\0') i++; i--; for(; j { if(a[i] != a[j])

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,310,948
精华内容 524,379
关键字:

字符串