网站首页 > java教程 正文
字符串处理是编程中最常见的场景,各种编程语言都有与其相关的函数,今天我们讲一下字符串截取函数,用法略有差异。
Java语言
语法
public String substring(int beginIndex)
或
public String substring(int beginIndex, int endIndex)
参数
- beginIndex -- 起始索引(包括), 索引从 0 开始。
- endIndex -- 结束索引(不包括)。
用例
String str = new String("This is text");
System.out.print("返回值 :" );
System.out.println(str.substring(4) );
System.out.print("返回值 :" );
System.out.println(str.substring(4, 10) );
运行结果
返回值 : is text
返回值 : is te
C#语言
语法
public string Substring(int startIndex)
或
public string Substring(int startIndex, int length)
参数
- startIndex -- 起始索引(包括), 索引从 0 开始。
- length -- 子字符串中的字符数,即截取的长度。
用例
string value = "This is text";
int startIndex = 5;
int length = 2;
string substring = value.Substring(startIndex, length);
Console.WriteLine(substring); //此处将打印is
Python
语法
string[start : end : step]
参数
- string -- 要截取的字符串。
- start -- 表示要截取的第一个字符所在的索引(截取时包含该字符)。如果不指定,默认为 0,也就是从字符串的开头截取。
- end -- 表示要截取的最后一个字符所在的索引(截取时不包含该字符)。如果不指定,默认为字符串的长度。
- step -- 指的是从 start 索引处的字符开始,每 step 个距离获取一个字符,直至 end 索引处的字符。step 默认值为 1,当省略该值时,最后一个冒号也可以省略。
用例
str = "This is text"
str1 = str[0:4]
str2 = str[:8:2]
str3 = str[9:12]
print('st1 = ', str1, ' str2 = ', str2, ' str3 = ', str3)
执行结果
str1 = This str2 = Ti s str3 = ext
JavaScript
语法
string.substring(start, end)
参数
- start -- 必需,非负的整数;起始位置,索引从 0 开始。
- end -- 可选,非负的整数;结束位置(至多,但不包括);如果省略,则提取字符串的其余部分。
用例
let text = "This is text";
let result = text.substring(1, 4);
//用法基本同Java,但有一个地方,当start大于end时会交换参数,即此处result2和result是相同的值
let result2 = text.substring(4, 1);
Oracle内置函数
语法
substr(string string, int a, int b)
或
substr(string string, int a)
参数
- string -- 需要截取的字符串。
- a -- 截取字符串的开始位置(注:当a等于0或1时,都是从第一位开始截取,可以理解为索引从1开始)。
- b -- 要截取的字符串的长度(注:当a小于0时,则只有 |a| ≥ b才会取b的个数,否则取|a|作为长度)。
用例
select substr('HelloWorld',0,3) value from dual; //返回结果:Hel,截取从“H”开始3个字符
select substr('HelloWorld',1,3) value from dual; //返回结果:Hel,截取从“H”开始3个字符
select substr('HelloWorld',5,3) value from dual; //返回结果:oWo
select substr('HelloWorld',-1,3) value from dual; //返回结果:d (从后面倒数第一位开始往后取1个字符,而不是3个)
select substr('HelloWorld',-2,3) value from dual; //返回结果:ld (从后面倒数第二位开始往后取2个字符,而不是3个)
select substr('HelloWorld',-3,3) value from dual; //返回结果:rld (从后面倒数第三位开始往后取3个字符)
MySQL内置函数
语法
substring(str, pos) 或 substr(str, pos)
substring(str, pos, len) 或 substr(str, pos, len)
参数
- str -- 需要截取的字符串。
- pos -- 截取字符串的开始位置,索引从0开始。
- len -- 要截取的字符串的长度。
用例
select substr('HelloWorld',0,3); //返回结果:Hel,截取从“H”开始3个字符
select substr('HelloWorld',1,3); //返回结果:ell,截取从“e”开始3个字符
总结一下,只有Oracle内置的字符串截取函数索引是从1开始,Java和JavaScript需指定指定结束位置索引,但截取后的字符串不包含该位置的字符,其他语言大多数指定截取长度,而不是结束位置;Python语言则是使用类似数组访问方式的语法糖来实现字符串截取,更加的方便。
猜你喜欢
- 2024-10-01 Java中String类字符串拼接谁的效率最低
- 2024-10-01 100个Java工具类之2:字符串之多种个性化格式处理
- 2024-10-01 每天积累一点点(Java基础——》String类学习——one day)
- 2024-10-01 Java动态加载Jar实例解析(java动态加载类框架)
- 2024-10-01 Java中如何使用正则技术提取html中的任意内容
- 2024-10-01 Java String 常用方法,涵盖全部(java string的用法)
- 2024-10-01 在Java中将String转换为char(java string转换char)
- 2024-10-01 「JavaWeb基础」文件上传和下载(修订版)
- 2024-10-01 浅谈Java中字符串的初始化及字符串操作类
- 2024-10-01 MySql字符串拆分实现split功能(字段分割转列、转行)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)