从substring()方法看android的容错机制有待改进.

最近在学习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)。

 

原文地址:https://www.cnblogs.com/qisunpeng/p/2053468.html