
- 外文名
- Character string
- 拼 音
- zi fu chuan
- 简 称
- 串(String)
- 释 义
- 编程语言中表示文本的数据类型
- 中文名
- 字符串
- 记 作
- s=“a1a2···an”(n>=0)
-
Oracle中字符串截取最全方法总结
2018-08-30 18:10:42substr 函数:截取字符串 语法: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:25Java在字符串中查找匹配的子字符串示例:
在源字符串“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)); } }
- 类 Matcher:通过调用模式的 matcher 方法从模式创建匹配器。创建匹配器后,可以使用它执行三种不同的匹配操作:
-
python 去除字符串中指定字符
2018-08-06 14:37:52python中的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
-
Python判断字符串是否包含子字符串
2019-04-10 15:36:20Python如何判断一个字符串是否包含指定字符串?本文介绍Python判断一个字符串是否包含指定子串的4种方法。具有一定的借鉴价值。 第一种 使用in运算符 最简单的方法是通过python的 in 运算符 str = "Everyone has...Python如何判断一个字符串是否包含指定字符串?本文介绍Python判断一个字符串是否包含指定子串的4种方法。具有一定的借鉴价值。
第一种 使用in运算符
最简单的方法是通过python的 in 运算符
str = "Everyone has a world, quite and lonely!" result = "world" in str result2 = "hello" in str print(result,result2)
运行结果:
True False
当字符串中存在子字符串时,结果返回True,否则,返回false。
这种方法非常简单,常用。
第二种 使用字符串对象的find()/rfind()、index()/rindex()、和count()方法
字符串属性的自带方法
s = "Everyone has a world, quite and lonely!" t = "hello" t1 = "world" print(s.find(t)>=0,s.find(t1)>=0) print(s.count(t)>=0,s.count(t1)>=0) print(s.index(t1)>=0)
运行结果:
False True False True True
第三种:使用string模块的find()/rfind()方法
还可以使用的另一种方法是字符串的find方法。与被计算为布尔值的in运算符不同,find方法返回一个整数。
如果子字符串存在,则此整数本质上是子字符串开头的索引,否则返回-1。
import string s = "Everyone has a world, quite and lonely!" print(s.find('world'),sifind('hello')) 运行结果: 15 -1
这个方法的一个很厉害的地方:可以指定一个开始索引和一个结束索引来限制你的搜索范围。
import string s = "Everyone has a world, quite and lonely!" print(s.find('world',5,25),sifind('world',0,5)) 运行结果: 15 -1
第四种:使用string模块的index()/rindex()方法
index()/rindex()方法跟find()/rfind()方法相似,只不过在找不到子字符串的时候会报一个ValueError的异常。
附:
出售kinder 电子书,有意者联系 QQ:1694392625
-
常用的字符串截取方法
2019-03-27 17:33:241 取字符串的前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-... -
c语言比较两个字符串是否相等strcmp
2017-03-27 13:38:46C语言提供了几个标准库函数,可以比较两个字符串是否相同。以下是用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:34Java中字符串中子串的查找共有四种方法(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:561.字符串数组+初始化 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:15C语言中没有类似java,python等面向对象的编程语言中string那样的特定的字符串类型,通常是将字符串放在一个字符数组中。 遍历字符串代码: #include<stdio.h> #include<string.h> ... -
C语言--字符串拷贝、字符串查找、字符串比较、字符串截取
2018-09-27 01:11:40在实际的应用当中,字符和字符串的操作是最常用的技能。总结下来,提升能力。 一、字符串拷贝 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方法 ...这个方法有两个变体并测试如果一个字符串开头的指定索引指定的前缀或在默认情况下从字符串开... -
JS中ArrayBuffer转字符串,字符串转ArrayBuffer,字符与字节桥转换
2020-06-19 22:23:29//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... -
判断一个字符串中是否包含另一个字符串
2017-12-25 10:00:21contains()判断一个字符串中是否包含某个字符串 starsWith()判断一个字符串中是否以某个字符串开始 endsWith()判断一个字符串中是否以某个字符串结尾 var s = "hello world!";s.starsWith("hello&... -
iOS开发:字符串处理:截取字符串、匹配字符串、分割字符串
2019-03-07 12:23:44本篇要分享的是关于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:491. 在处理字符串的过程中有很多情况下会遇到需要截取字符串的情况,这个时候使用Java中提供的substring方法来截取就非常方便了 2. 其中比较经常使用到的方法有两个: ① public String substring(intbeginIndex) ... -
算法021:字符串压缩:利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能。比如,字符串...
2020-10-26 08:37:37字符串压缩:利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能。比如,字符串aabcccccaaa会变为a2b1c5a3。若“压缩”后的字符串没有变短,则返回原先的字符串。你可以假设字符串中只包含大小写英文... -
js把字符串数组合成字符串/把字符串分割成字符数组
2017-01-05 16:49:02js把字符串数组合成字符串 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:371、 空串”“是长度为0的字符串,它有自己的串长度(0)和内容(空),判断一个字符串为空的方法: if (str.length() == 0); 或 if (str.equals("")); 2、 null串表示目前没有任何对象与... -
python字符串、字符串处理函数及字符串相关操作
2014-04-12 23:23:25http://blog.csdn.net/pipisorry/article/details/42085723字符串介绍python字符串表示Python除处理数字外还可以处理字符串,字符串用单撇号或双撇号包裹:>>> 'spam eggs' 'spam eggs' &... -
常用JS——string字符串方法
2018-08-21 10:47:36一、关于字符串分割 1、slice(start,end); 关于这个方法,一定要搞懂四个关键点: (1)截取字符串时不包括下标为end的元素。 (2)end是可选参数,没有时,默认从start到结束的所有字符串。 (3)String.... -
JAVA 字符串三个常用操作(查找子串、截取字符串、分割字符串)
2019-05-16 17:42:00public int indexOf(int ch ) :返回指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。 或 public int indexOf(int ch, int fromIndex) :返回从 fromIndex 位置开始查找指定字符在... -
【C语言】判断一个字符串是否为回文字符串。
2016-10-02 23:17:482.判断一个字符串是否为回文字符串。 #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])
-
PyQt5中自定义QWebEngineView的右键菜单
-
2021全网最详细【WEB前端】从零入门实战教程,全课程119节
-
JavaEE框架(Maven+SSM)全程实战开发教程(源码+讲义)
-
ppt各个领域模板大全.txt
-
【数据分析实战训练营】Hive详解
-
AcWing 1341. 十三号星期五(暴力+枚举)
-
jsp校园失物招领系统ssm程序.rar
-
poco源码&编好的库.zip
-
Web前端HTML5&CSS3初学者零基础入门——第六天(盒模型)
-
0004简历.docx
-
第3章 入门程序、常量、变量
-
三维地图GIS大数据可视化
-
OpenJudge3262:新数字三角形
-
remote_connect.sh
-
Linux常用hook技术个人领悟与心得
-
转行做IT-第5章 流程控制语句
-
SQL Server 2012案例教程.rar
-
【数据分析-随到随学】Python数据获取
-
cs中一种迭代硬阈值重构算法IHT.rar
-
DTC_Airborne_Communications.pdf