最近在学习android,用到substring()方法,得到收获如下:
1、substring()方法是用于截取字符串,功能跟VC的Mid()函数一样,但参数还是有较大差别的。
先看JAVA中substring的方法定义:
public String substring (int start, int end)
再看VC中Mid()函数的定义:
CString Mid( int nFirst, int nCount )
第一个参数start(nFirst)没啥问题,关键是第二个参数end(nCount),说明如下:
“end”是指字符串的物理位置,而“nCount”是指取几个字符,例如:
java(android):
String a1="123456789";
String a2=a1.substring(2,7);
a2结果是:"34567";
VC:
CString a1="123456789";
CString a2=a1.Mid(2,7);
a2的结果是:“3456789”;
这就是第二个参数end(nCount)的区别。
2、再看一下substring()方法的容错问题,例如把前面的改为:
a2=a1.substring(7,2);
编译是没问题的,但在android模拟器中运行就出现异常!所以我觉得android的容错机制真的有待改进,因为在编译阶段不提示哪里有问题,待到模拟环境中运行才说“出现意外”要终止(也不提示出现意外的原因),这样不够人性化,有时几百行的代码,真的不知道哪里的问题。
PS:买了本android的书,正在学android(java)。