关于String.substring方法

关于String.substring方法

该方法的签名为

String substring(int beginIndex, int endIndex)

 

结合javadoc和源代码,对该方法进行分析:

 

根据beginIndex与0或count的比较、beginIndex与endIndex的比较、endIndex与字符串长度count的比较,有几种情况:

 

 

 

#beginIndex与0比较beginIndex与endIndex比较endIndex与count比较结果
1<0IndexOutOfBoundsException
2=0<<子串
3<=String对象本身
4<> IndexOutOfBoundsException
5=""  空串
6
> IndexOutOfBoundsException
7>0 & <count<<子串
8<=子串
9<> IndexOutOfBoundsException
10="" 空串
11> IndexOutOfBoundsException
12=count< IndexOutOfBoundsException
13="" 空串
14> IndexOutOfBoundsException
15>count IndexOutOfBoundsException

 

上面的表格列出的情况多达15种,可见要对代码进行覆盖性测试确实是非常困难的。

 


jdk6中String.substring的文档 写道
public String substring(int beginIndex)
Returns a new string that is a substring of this string. The substring begins with the character at the specified index and extends to the end of this string.

Examples:

 "unhappy".substring(2) returns "happy"
 "Harbison".substring(3) returns "bison"
 "emptiness".substring(9) returns "" (an empty string)
 

 

Parameters:
beginIndex - the beginning index, inclusive.
Returns:
the specified substring.
Throws:
IndexOutOfBoundsException - if beginIndex is negative or larger than the length of this String object.


 

public String substring(int beginIndex,
                        int endIndex)
Returns a new string that is a substring of this string. The substring begins at the specified beginIndex and extends to the character at index endIndex - 1. Thus the length of the substring is endIndex-beginIndex.

Examples:

 "hamburger".substring(4, 8) returns "urge"
 "smiles".substring(1, 5) returns "mile"
 

 

Parameters:
beginIndex - the beginning index, inclusive.
endIndex - the ending index, exclusive.
Returns:
the specified substring.
Throws:
IndexOutOfBoundsException - if the beginIndex is negative, or endIndex is larger than the length of this String object, or beginIndex is larger than endIndex.
 

PS:iteye的表格编辑实在很困难,望高人指点。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值