一.
接下来我们把字符串当中涉及的方法,给大家介绍一下。首先介绍的是stringMethodDemo_1()方法。
准备用面向对象的思考方式,把这个方法给思考一下。
看到上图中的字符串,应该具备什么样的功能会比较合适呢?
一个字符串中有几个字符?它有几个字符它自己最清楚,它应该具备这样的功能来告诉它有多少个字符。
这个字符串第一个字符是什么?第二个字符是什么?根据位置获取字符。
这个字符串,如果它有b这个字符,b这个字符在哪个位置上?
如果现在不想要abcd,只想要abcd中的一部分。
以上都应该是字符串应该具备的功能。因为字符串最熟悉它里面有什么东西,我们想要操作字符串,先要找到对象。找其方法就可以了。它的方法很多,我们准备按照分类的方式来介绍。
1. 获取
什么是获取呢?在对字符串的操作中,我想拿字符串里面的东西,想获取字符串的一部分信息。
1.1 获取字符串中字符的个数(长度)
要是真有这功能,返回值是什么?这功能有没有参数?字符串里面本身具备的功能就是获取它的长度,我还要将字符串传递进来,再使用它的方法,(我想知道人的年龄,还要把人传递进来再获取,有劲吗?)。采用的是this,哪个字符串调用的length方法,它就返回哪个字符串的长度。
我们分析完我们认为有效地功能,可以到API中来查询。
直接在方法摘要中,查看返回值类型,(在开始将函数的时候)。函数有两点要明确,结果和未知内容。对象分析也这么去考虑问题,很方便,字符串如果有这个功能,它应该是什么样的结果?有什么样的参数?
先从方法摘要中找寻返回值类型为int 的方法。hashcode方法是object类中的方法,写在这里意味着什么?是覆写了(在方法摘要中是覆写)。如果不是覆写,则是写在继承后面。hashcode代表着字符串对象有着自己的哈希地址的算法。
从方法摘要中继续寻找,找到了int length()。返回值类型为int类型,参数列表为空参,符合我们需要的方法要求(返回长度值肯定是int类型,对象调用自己的方法,不需要输入参数,无参数列表),为了防止下面还有类似的类型和无参数列表的函数(不同的函数名,功能不一样),可以直接点击length函数名,观看它的解释API解释。
为什么要强调字符串的长度,数组也有长度,那是数组的属性。而字符串这里是方法。
先将常用的,对象本身自带的方法介绍完,再去介绍特殊的。
1.2 根据位置获取字符
这个函数名暂时不清楚,但是有返回值为char类型,同时也有参数列表int index(表明想要得到那个索引位置上的元素),现在函数的三要素已经得到了两个。直接去方法摘要中寻找对应的方法。
1.3 根据一个字符获取其在字符串中的位置
返回值类型是int类型,参数列表是char,接着在String类的方法摘要中寻找,
暂时没找到,找到一个int ch。Java中的方法的变量名取的都非常的具备阅读性,ch是char的简写,代表着字符。索引字符的位置,应该是char类型,怎么参数类型是int呢?是说传递参数为单引号'a'能索引,传递int 97也能索引。这个设置更加的深入,它支持阿斯科码数值,往里面传递a也是97。
如果字符串里面有两个a怎么办?所以应该是获取其在字符串中第一次出现的位置。
indexof是重点方法,下图中的第一个方法是从0角标开始索引,第二个方法是可以指定从哪儿开始索引。
其实这都不是索引了,更确切的说是查找。
现在想知道字符串中'bc'的位置,这也可以搜索字符串。
同时方法摘要中还有四个方法,看它们的函数名也可以猜出它们的功能。
二.
现在演示一下上面所讲述过的方法,
字符串里面的字符是有角标的,数字符个数的时候从1数,查字符角标的时候从0查。
字符的角标是固定的,不是说从右往左数,就发生了变化。
这里报错的信息就不是数组角标越界了,而是字符串角标越界。
没有该字符,索引结果就用-1表示。
index这个功能一个是索引位置,另一个是判断存在。
空格是个字符,它有自己对应的阿斯科码值。