java中substring与substr的用法(转)

本文详细介绍了JavaScript中的substring和substr方法的使用方式,包括参数说明、返回值解释及多个实例演示,帮助读者掌握这两种常用字符串处理方法。
1.substring 方法
定义和用法
substring 方法用于提取字符串中介于两个指定下标之间的字符。
语法
stringObject.substring(start,end)
参数     描述
start     必需。一个非负的整数,规定要提取的子串的第一个字符在 stringObject 中的位置。 
end     可选。一个非负的整数,比要提取的子串的最后一个字符在 stringObject 中的位置多 1。如果省略该参数,那么返回的子串会一直到字符串的结尾。
返回值
一个新的字符串,该字符串值包含 stringObject 的一个子字符串,其内容是从 start 处到 end-1 处的所有字符,其长度为 end 减 start。
说明
substring 方法返回的子串包括 start 处的字符,但不包括 end 处的字符。
如果 start 与 end 相等,那么该方法返回的就是一个空串(即长度为 0 的字符串)。
如果 start 比 end 大,那么该方法在提取子串之前会先交换这两个参数。
如果 start 或 end 为负数,那么它将被替换为 0。
2.substr 方法
定义和用法
substr 方法用于返回一个从指定位置开始的指定长度的子字符串。
语法
stringObject.substr(start [, length ])
参数    描述
start   必需。所需的子字符串的起始位置。字符串中的第一个字符的索引为 0。
length 可选。在返回的子字符串中应包括的字符个数。
说明
如果 length 为 0 或负数,将返回一个空字符串。
如果没有指定该参数,则子字符串将延续到stringObject的最后。
举例:
var str = "0123456789";
alert(str.substring(0));------------"0123456789"
alert(str.substring(5));------------"56789"
alert(str.substring(10));-----------""
alert(str.substring(12));-----------""
alert(str.substring(-5));-----------"0123456789"
alert(str.substring(-10));----------"0123456789"
alert(str.substring(-12));----------"0123456789"
alert(str.substring(0,5));----------"01234"
alert(str.substring(0,10));---------"0123456789"
alert(str.substring(0,12));---------"0123456789"
alert(str.substring(2,0));----------"01"
alert(str.substring(2,2));----------""
alert(str.substring(2,5));----------"234"
alert(str.substring(2,12));---------"23456789"
alert(str.substring(2,-2));---------"01"
alert(str.substring(-1,5));---------"01234"
alert(str.substring(-1,-5));--------""
alert(str.substr(0));---------------"0123456789"
alert(str.substr(5));---------------"56789"
alert(str.substr(10));--------------""
alert(str.substr(12));--------------""
alert(str.substr(-5));--------------"0123456789"
alert(str.substr(-10));-------------"0123456789"
alert(str.substr(-12));-------------"0123456789"
alert(str.substr(0,5));-------------"01234"
alert(str.substr(0,10));------------"0123456789"
alert(str.substr(0,12));------------"0123456789"
alert(str.substr(2,0));-------------""
alert(str.substr(2,2));-------------"23"
alert(str.substr(2,5));-------------"23456"
alert(str.substr(2,12));------------"23456789"
alert(str.substr(2,-2));------------""
alert(str.substr(-1,5));------------"01234"
alert(str.substr(-1,-5));-----------""
<think> 我们被要求使用中文回答问题,并在末尾提出3-5个相关问题,且第一行必须是“§§相关问题§§” 用户的问题是:JavasubString用法 注意:在Java中,字符串的substring方法用于获取字符串的子串。在Java 7及以后版本,substring方法有两个重载形式: 1. substring(int beginIndex):返回从beginIndex开始到字符串末尾的子串。 2. substring(int beginIndex, int endIndex):返回从beginIndex开始到endIndex-1结束的子串。 同时要注意,索引是从0开始的,beginIndex是包含的,endIndex是不包含的。 另外,在Java 7之前,substring方法可能会导致内存泄漏问题(因为会共享原字符串的char数组),但在Java 7及以后版本中已经修改为创建新的数组,所以不会再有这个问题。 下面给出代码示例。 </think> 在Java中,`substring()`方法用于从字符串中提取子串。它有两种重载形式,具体用法如下: ### 1. 基本用法 ```java String str = "Hello, World!"; // 从指定索引开始截取到字符串末尾 String substr1 = str.substring(7); // "World!" // 截取指定区间 [起始索引, 结束索引) String substr2 = str.substring(0, 5); // "Hello" ``` ### 2. 关键特性: - **索引规则**:索引从0开始计数,左闭右开区间 ```java "ABCDE".substring(2, 4); // 返回 "CD" (包含索引2,不包含索引4) ``` - **注意事项**: - 起始索引必须合法 (`0 <= start <= length`) - 结束索引必须满足 (`start <= end <= length`) - 若索引越界会抛出 `StringIndexOutOfBoundsException` ### 3. 完整示例 ```java public class SubstringDemo { public static void main(String[] args) { String text = "Java Programming"; // 提取"Java" String firstWord = text.substring(0, 4); // 提取"Programming" String secondWord = text.substring(5); // 提取中间"Pro" String middle = text.substring(5, 8); System.out.println(firstWord); // 输出: Java System.out.println(secondWord); // 输出: Programming System.out.println(middle); // 输出: Pro } } ``` ### 4. 特殊场景处理 ```java // 截取到末尾 "abc".substring(1); // "bc" // 空字符串 "abc".substring(1, 1); // "" (空字符串) // 单字符提取 "abc".substring(2, 3); // "c" ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值