前端 js/ Java/ MySQL/Oracle 的 截取字符串 substr、substring 详细说明

本文详细介绍了前端JavaScript的substr和substring方法,以及后端Java的substring方法,包括MySQL的SUBSTR、SUBSTRING和SUBSTRING_INDEX,以及Oracle的SUBSTR,展示了在不同数据库系统中截取字符串的用法和注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前端 js/ Java/ MySQL/Oracle 截取字符串总结:

环境方法说明
前端 jssubstr(from, length)substr(起始位置,字符数)
substring(start, end)substring(起始位置, 结束位置)
后端 javasubstring(beginIndex)substring(起始位置)
substring(beginIndex, endIndex)substring(起始位置, 结束位置)
MySQLSUBSTR(str, pos, len)SUBSTR(字符串/字段名, 起始位置, 长度/结束位置)
SUBSTRING(str, pos, len)SUBSTRING(字符串/字段名, 起始位置, 长度/结束位置)
MySQL: 获取字符串指定分隔符之前或之后的子字符串SUBSTRING_INDEX(str,delim,count)SUBSTRING_INDEX(字符串/字段名, 分隔符, 返回的子字符串的个数)
OracleSUBSTR(ch, pos, length)SUBSTR(字符串/字段名, 起始位置, 长度/结束位置)

注意:MySQL、Oracle 是从 1 开始计数,其他从 0 开始计数。

1、前端 js 的截取字符串方法:substr、substring

idea 前端的截取字符串方法显示:
在这里插入图片描述

substr(from,length):起始位置,返回的字符数

详细说明:substr(from: number, length?: number)

参考如下:

var str = "Hello, world!";
var result = str.substr(7, 5); // 返回 "world"
var result1 = str.substr(7, 12); // 返回 "world!"

注意:起始位置 到 字符串末尾 的长度 < 字符数,直接截取到字符串末尾

substring(start,end): 起始位置,结束位置

详细说明:substring(start: number, end?: number)

参考如下:

var str = "Hello, world!";
var result = str.substring(7, 12); // 返回 "world"
var result1 = str.substring(12, 7); // 返回 "world"

注意:结束位置 < 起始位置, substring 方法会自动交换这两个参数

总结:substr 和 substring 的区别是第二个参数,如果第二个参数为空,则都返回:起始位置到字符串末尾。起始位置从0开始。

2、Java 中 截取字符串方法:substring

idea 的后端Java 截取字符串方法显示:
在这里插入图片描述

substring(beginIndex) : 起始位置

没有结束位置,则截取 起始位置到字符串末尾。

substring(beginIndex, endIndex) : 起始位置,结束位置

有结束位置,则截取 起始位置到结束位置。

参考如下:

 String value = "Hello, world!";
 String value1 = value.substring(7); // 返回 "world!"
 String value2 = value.substring(7,12); // 返回 "world"

注意事项:结束位置 不能小于 起始位置,否则会报错。起始位置从0开始。

3、MySQL 的截取字符串方法:SUBSTR、SUBSTRING、SUBSTRING_INDEX

MySQL的详细截取字符串SUBSTR、SUBSTRING、SUBSTRING_INDEX 如下:
在这里插入图片描述
在 MySQL 中截取字符串SUBSTR 和 SUBSTRING 方法效果是一样的。

SUBSTR(str, pos, len)、SUBSTRING(str, pos, len)

str : 字段名/字符串,
pos : 起始位置,
len : 长度/结束位置,pos<len,则是 结束位置;pos>=len,则是 长度。

参考如下:

-- REMARK 是 "Hello, world!"
select *,SUBSTR(REMARK,7) from test1;  -- 返回 ' world!'
select *,SUBSTR(REMARK,7,5) from test1; -- 返回 ' worl'
select *,SUBSTR(REMARK,7,12) from test1; -- 返回 ' world!'
select *,SUBSTRING(REMARK,7) from test1;  -- 返回 ' world!'
select *,SUBSTRING(REMARK,7,5) from test1; -- 返回 ' worl'
select *,SUBSTRING(REMARK,7,12) from test1; -- 返回 ' world!'

注意事项:MySQL 中字符串的索引起始位置是从 1 开始的,而不是从 0 开始。如果设置为0,截取的字符串返回会是空的。

MySQL 的 SUBSTRING_INDEX :获取字符串指定分隔符之前或之后的子字符串

SUBSTRING_INDEX(str,delim,count)
str : 字段名/字符串,
delim : 分隔符,
count : 返回的子字符串的个数

SUBSTRING_INDEX 会从 str 中根据 delim 进行分割,然后返回分割后的子字符串。
如果 count 为正数,则返回从字符串开头到第 count 个分隔符之间的子字符串;
如果 count 为负数,则返回从字符串末尾到倒数第 count 个分隔符之间的子字符串。

参考如下:

-- REMARK 是 'Hello, world!'
select *,SUBSTRING_INDEX(REMARK,',',1) from test1; -- 返回 'Hello'
select *,SUBSTRING_INDEX(REMARK,',',-1) from test1; -- 返回 ' world!'
-- str 是 'apple,banana,orange,grape'
SELECT SUBSTRING_INDEX(str, ',', 1) from test1; -- 返回 'apple'
SELECT SUBSTRING_INDEX(str, ',', -2) from test1; -- 返回 'orange,grape'

4、Oracle 的截取字符串方法:SUBSTR

Oracle 的 截取字符串方法如下:
在这里插入图片描述

Oracle 的 截取字符串方法只有 SUBSTR(ch, pos, length)

ch : 字段名/字符串,
pos : 起始位置,
length : 长度/结束位置,pos<length,则是 结束位置;pos>=length,则是 长度。

参考如下:

-- REMARK 是 'Hello, world!'
SELECT t.*,SUBSTR(t.REMARK,7) FROM TEST1 t; -- 返回 ' world!'
SELECT t.*,SUBSTR(t.REMARK,7,5) FROM TEST1 t; -- 返回 ' worl'
SELECT t.*,SUBSTR(t.REMARK,7,12) FROM TEST1 t; -- 返回 ' world!'
-- 注意:直接在 SELECT 语句中使用 * 来选择所有列,然后再加上 SUBSTR 函数是不被允许的,所以加了t。

注意事项:起始位置是从 1 开始计数的,而不是从 0 开始计数的。
因此,如果你想截取字符串的前几个字符,起始位置应该是 1,而不是 0。
如果,设置起始位置为0,他也会从 1 开始计数,不会像 MySQL 那样直接返回空。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值