您的位置:首页 > 职场人生

黑马程序员--- 字符串的重要性, String类的定义方法, StringBuffer类的构造方法

2014-11-12 20:55 357 查看
------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

1. 字符串的重要性

字符串程序中就是一个"",表示了大多数现实生活中的数据形式

电商:订单(单号,下单时间,收货人,地址,发票抬头,电话,商品的名字)

商品:库存,介绍,使用方法....

""字符串是所有的系统中必须局部的一种数据类型。对于字符串的处理,表现出一个程序人员的基本功

要求做到:基础结束的时候,做到,使用字符串,不需要查询API文档

2. 字符串的特殊对象

对于字符串这个对象,Java使用类进行描述,String类。在程序中只要你写上一个双引号,表示一个对象 String name = "lisi" new Person....

System.out.println("hello world"); ""

特点一:不需要new 的对象,直接写双引号,就表示一个字符串对象

特点二:字符串是常量,一旦创建,不能改变

3. String类的定义方法

第一种 String s= "abc";

第二种 String s1= new String("abc"); //创建字符串,使用的是String类的构造器

区别,第一种创建一个对象s直接指向对象"abc"

第二种创建两个对象,对象"abc",对象 newString() 变量s1指向的是new String()

s == s1 结果是false 指向不同的对象

s.equals(s1)结果是true,String类重写equals比较字符串的具体内容,不是地址

4. 字符串String类的原理

看看String类的原始代码:底层实现是什么:字符串底层就是一个字符数组 char[]

"abcd" 4个长度的char数组 被final锁定

输出字符串的时候,其实输出的就是那个字符数组,但是输出语句println对字符串数组直接遍历,看到的是每个字符,不是地址

5. String类的构造方法

l 空参数构造, newString()

l 将字节数组变成字符串new String(字节数组 byte[] bytes),查询编码表,必须查

l 将字节数组一部分变成字符串new String(字节数组,int,int)第一个int是开始下标,第二个int是获取几个,注意的数组的长度,防止越界异常

l 将字符数组转成字符串new String(字符数组 char[] ch)

l 将字符数组一部分转成字符串new String(字符数组,int,int) 一个int是开始下标,第二个int是获取几个,注意的数组的长度,防止越界异常

6. String的判断方法 -- 都是布尔类型

l 判断两个字符串是否完全相等,重写Object类的equals,两个字符串完全相等,返回真,有一点不同,返回假 public boolean equals(Objectobj)

l 判断两个字符串是否相等,忽略大小写,boolean equalsIgnoreCase(String s)

l 判断一个字符串是否以另一个字符串开头,如果是返回真 boolean startsWith(String s)

l 判断一个字符串是否以另一个字符串结尾,如果是返回真 boolean endsWith(String s)

l 判断一个字符中是否有字符,如果有返回假,没有字符返回真,判断是不是一个空串"" booleanisEmpty() 开始于JDK1.6(包含)以后版本

7. String类的获取方法

l 指定下标,返回这个下标上的单个字符 char charAt(int index)传递索引,返回这个索引上字符,注意越界异常

l 指定字符,找这个字符在字符串中第一次出现的下标 int indexOf(char ch),凡是返回下标的功能,如果没有找到,返回负数

l 指定字符,找这个字符在字符串中第一次出现的下标 int indexOf(char ch,intformIndex),指定开始查找的位置索引

l 指定字符串,找字符串在另一个字符串中第一次出现的下标 int indexOf(String s)。

l 指定字符串,找字符串在另一个字符串中第一次出现的下标 int indexOf(String s,int fromIndex),指定开始查找的位置

l 指定字符,找这个字符在字符串最后一次出现的下标,int lastIndexOf(char ch)反向索引,如果没找到,返回负数

l 指定字符,找这个字符在字符串最后一次出现的下标,int lastIndexOf(char ch,int fromIndex),指定开始查找的位置

l 自己实现。int lastIndexOf(Strings) int lastIndexOf(String s,intformIndex)

l 获取字符串中的字符个数int length() 返回字符个数 length属性,数组的长度。length()方法,表示字符串中的字符个数。

l 获取(截取)字符串的一部分 Stringsubstring(int start, int end)返回新的字符串,原始不变,包含头,不包含尾

l 获取字符串的一部分String substring(int start)返回新的字符串,从开始下标计算,后面的全要

8. String类的转换方法

l 将字符串转成字节数组,返回字节数组byte[] getBytes(),查询编码表

l 将字符串转成字符数组,返回字符数组 char[] toCharArray(),不查询编码表

l 将字符串全部转成大写字符,返回新字符串 String toUpperCase()

l 将字符串全部转成小写字符,返回新字符串 String toLowerCase()

l 字符串的追加方法 返回新字符串concat(String s)

9. String类的其他方法

l 一个字符串是否包含另一个字符串 boolean contains(String s)完全包含返回真

l 将其他数组类型转成字符串 staticString valueOf(任意类型)

l 切割字符串 String[]split("切割规则"),返回新的字符串数组.如果规则不满足,原始字符串直接装进新的数组的0下标。安装"点" .正则中匹配任意字符,点变成普通的一个符号.

l 替换字符串,返回新的字符串String replace(老char,新char)

l 替换字符串,返回新的字符串String replace(老串,新串)

l 安照字典顺序比较两个字符串int compareTo(String s),比较有三种结果,我比你小,我和你一样,我比你大。调用者小于参数 结果是负数,调用者等于参数,结果是0,调用者大于参数,结果是正数。字典顺序,称为自然顺序

l 去掉字符串的两端空格 ,返回新字符串String trim(),如果字符串中间有空格,不去除

10. StringBuffer类的由来

看代码,分析产生了几个对象

String s ="ab"+"cd"+"ef"+"gh";

sop(s)"abcdefgh";

String类固定不变,上面代码,生成5个对象,很浪费内存,运行速度越慢

Java开发出了StringBuffer降低资源的浪费,速度的提升。是一个字符串的缓冲区,为了提高效率

可变字符序列

11. StringBuffer类概述

字符串的缓冲区,提高String的操作效率,底层数据结构可变数组(字符),数组是定长,StringBuffer自己会做数组的扩容,删除原数组

12. StringBuffer类的构造方法

l 空参数,默认创建16个位置的数组

l 带有String参数的,直接把字符串,装进缓冲区

13. StringBuffer类的常见方法

l 将数据追加到缓冲区 append(任意类型) 出来的结果都是字符串,方法的返回值是StringBuffer,返回本类对象。新的概念,链式编程,对象调用方法,方法的返回值还是一个对象

l 删除缓冲区中的字符串,StringBufferdelete(int start,int end),包含头,不包含尾
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐