Java,SQL 截取字符串substring

本文介绍了Java中使用substring方法截取字符串的方法,包括指定起始和结束索引的截取方式,以及在SQL中利用left(), right(), substring()等函数进行字符串截取的技术细节。

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

一、Java截取字符串 substring

1.方法一:

public String substring(int beginIndex, int endIndex)

该方法用于截取字符串中,从beginIndex到索引的endIndex-1之间的的字符串,即截取的字符串不包括endIndex这个索引对应的字符,所以endIndex的最大值为整个字符串的长度,所以使用这个方法的时候需要特别注意容易发生字符串截取越界的问题。

例如:
String str = “abcdefg”;
str.substring(2,4);
截取出来的字符传为"cd";
在这里插入图片描述

2.方法二:

同时,endIndex是可以省略的(多态),endIndex缺省的情况下为截取到字符串的最后一位。
方法为:
public String substring(int beginIndex)

例如:
str.substring(2);
截取出来的字符串为"cdefg";
可用范围:去除前n位;

3.方法应用:

要截取字符串中的最后几个字符。
可以先获取字符串的长度,将字符串的长度-n作为substring()方法的第一参数,就能实现截取字符串最后的n个字符的效果。

str.substring(str.length() - n);

可用范围:要求取字符串的后n位。
以下是示例代码,结果截图:
在这里插入图片描述
控制台输入"abcdefg",输出结果:
在这里插入图片描述

二、SQL截取字符串 substring

Mysql字符串截取总结:left()、right()、substring()、substring_index()

1、从左开始截取字符串 left()

left(str, length) 即:left(被截取字符串, 截取长度)

SELECT LEFT('www.yuanrengu.com',8);

结果为:www.yuan

2、从右开始截取字符串 right()

right(str, length) 即:right(被截取字符串, 截取长度)

SELECT RIGHT('www.yuanrengu.com',6);

结果为:gu.com

3、截取特定长度的字符串

substring(str, pos) 即:substring(被截取字符串, 从第几位开始截取)

substring(str, pos, length) 即:substring(被截取字符串,从第几位开始截取,截取长度)

  1. 从字符串的第9个字符开始读取直至结束

SELECT SUBSTRING('www.yuanrengu.com', 9);

结果为:rengu.com

  1. 从字符串的第9个字符开始,只取3个字符

SELECT SUBSTRING('www.yuanrengu.com', 9, 3);

结果为:ren

  1. 从字符串的倒数第6个字符开始读取直至结束

SELECT SUBSTRING('www.yuanrengu.com', -6);

结果为:gu.com

  1. 从字符串的倒数第6个字符开始读取,只取2个字符

SELECT SUBSTRING('www.yuanrengu.com', -6, 2);

结果为:gu

4、按关键字进行读取

substring_index(str, delim, count)
substring_index(被截取字符串,关键字,关键字出现的次数)

  1. 截取第二个“.”之前的所有字符

SELECT SUBSTRING_INDEX('www.yuanrengu.com', '.', 2);

结果为:www.yuanrengu

  1. 截取倒数第二个“.”之后的所有字符

SELECT SUBSTRING_INDEX('www.yuanrengu.com', '.', -2);

结果为:yuanrengu.com

  1. 如果关键字不存在,则返回整个字符串

SELECT SUBSTRING_INDEX('www.yuanrengu.com', 'sprite', 1);

在这里插入图片描述

### 后端截取字符串的方法 在后端开发中,字符串截取是常见的操作。不同的编程语言提供了各自的方法来实现这一功能。 #### Java Java 中可以使用 `substring()` 方法来进行字符串截取。该方法有两种重载形式: - **只传一个参数**:`substring(int beginIndex)` 将字符串从索引号为 `beginIndex` 开始截取,一直到字符串末尾(注意索引值从 0 开始)。 ```java String sb = "HelloWorld@qq.com"; String str = sb.substring(5); System.out.println(str); // 输出: World@qq.com ``` - **传递两个参数**:`substring(int beginIndex, int endIndex)` 截取从 `beginIndex` 到 `endIndex` 的子字符串(不包含 `endIndex`)。 ```java String sb = "HelloWorld@qq.com"; String str = sb.substring(5, 10); System.out.println(str); // 输出: World ``` #### JavaScript JavaScript 提供了多种方式来截取字符串: - **`substring(startIndex, endIndex)`**:与 Java 类似,截取从 `startIndex` 到 `endIndex` 的部分。 ```javascript let str = "HelloWorld@qq.com"; console.log(str.substring(5)); // 输出: World@qq.com ``` - **`slice(startIndex, endIndex)`**:类似于 `substring()`,但支持负数索引。 ```javascript let str = "HelloWorld@qq.com"; console.log(str.slice(5, 10)); // 输出: World ``` - **`substr(startIndex, length)`**:从 `startIndex` 开始截取指定长度的子字符串。 ```javascript let str = "HelloWorld@qq.com"; console.log(str.substr(5, 5)); // 输出: World ``` #### Python Python 提供了一种非常简洁的方式通过切片操作来截取字符串: - **切片语法**:`string[start:end]`,从 `start` 索引开始到 `end` 结束(不包含 `end` 索引)。 ```python string = "HelloWorld@qq.com" print(string[5:]) # 输出: World@qq.com print(string[5:10]) # 输出: World ``` - **负数索引**:表示从字符串末尾开始计数,例如 `-1` 表示最后一个字符。 ```python string = "HelloWorld@qq.com" print(string[-1]) # 输出: m ``` #### SQL (Oracle) 在 Oracle 数据库中,可以通过 `SUBSTR()` 函数来截取字符串: - **基本用法**:`SUBSTR(string, start, length)`,从 `start` 位置开始截取指定长度的子字符串。 ```sql SELECT SUBSTR('HelloWorld@qq.com', 6) AS result FROM dual; -- 输出: World@qq.com SELECT SUBSTR('HelloWorld@qq.com', 6, 5) AS result FROM dual; -- 输出: World ``` #### C# C# 中也提供了类似 Java 的 `Substring()` 方法来截取字符串: - **单参数版本**:`Substring(int startIndex)`,从 `startIndex` 开始截取到末尾。 ```csharp string sb = "HelloWorld@qq.com"; Console.WriteLine(sb.Substring(5)); // 输出: World@qq.com ``` - **双参数版本**:`Substring(int startIndex, int length)`,截取指定长度的子字符串。 ```csharp string sb = "HelloWorld@qq.com"; Console.WriteLine(sb.Substring(5, 5)); // 输出: World ``` 以上是不同后端编程语言中截取字符串的常见方法[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值