黑马程序员——java复习总结——字符串
2015-08-13 15:53
435 查看
------- android培训、java培训、期待与您交流! ----------
String s1 = “abc”;
如上,就是字符串的两种创建方法,字符串最大的特点是一旦被初始化就不可能被改变。但是指向字符串的类类型变量是可以变的,如上,就是s1可以变化,不能变的是”abc” 的内容。
String s2 = new String(“abc”);
对于s1和s2的区别:
s1有一个对象,就是”abc”;
s2有两个对象,分别是”abc”,和new String;
int indexOF(int ch,int fromIndex);从指定位置开始,获取ch在字符串中的位置。
int indexOf(String str);返回str在字符串中第一次出现的位置
int indexOF(String str,int fromIndex);从指定位置开始,获取str在字符串中的位置
特殊之处:indexOf(String str):可以索引str第一次出现位置,如果返回-1表示str不存在,所以也可以用indexOf判断字符串是否包含。
String(char[],offset,count);将字符数组中的一部分转成字符串。
静态方法:
static String copyValueOf(char[]);
static String copuValueOf(char[] data,intoffset,int count)
static String valueOf(char[]);
String(byte[],offset,count);
但是还有另外一种方式,比如3+””;也可以将3转成字符串,所以这并不常用
static String valueOf(double);
原字符串不变,返回一个新字符串,若找不到被替换的字符,则返回原字符串。
传入一个要切割的符号,返回的是一个字符串数组
从指定位置到结尾处
subString(int begin,int end) ;
从指定位置到指定结尾,包含头不包含尾。
String toLowerCase();
append();将字符串存储到StringBuffer容器中。
insert(int index,String str);将数据插入指定位置。
deletecharAt(int index)删除指定位置的数据
int indexOf(String str)获取字符串的位置
String substring(int start,int end);返回的是一个String,含头不含尾
setcharAt(int index,char ch);替换指定位置的字符
即是升级出现的,升级的三个因素有:
方便书写;提高效率;提高安全性。
它们对应的包装类是:
![](http://img.blog.csdn.net/20150813155759765?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
通过将基本数据类型包装成对象,就可以使用这些对象的方法。
![](http://img.blog.csdn.net/20150813155831326?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
运行结果:
![](http://img.blog.csdn.net/20150813155841379?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
对于Integer对象,内存中也有一个小于常量池,对于小于byte类型(128)的数,若已经存在就不会再开辟新的空间,所以对于两个127的Integer是执行同一地址的,但是128则不是。
一、String类
String类代表字符串,java程序中所有的字符串字面值(如”abc”)都作为此类的实例实现。他没有子类,字符串是常量,他们的值在创建之后就不能被更改。1.1 字符串的创建方法
String s1 = new String(“abc”);String s1 = “abc”;
如上,就是字符串的两种创建方法,字符串最大的特点是一旦被初始化就不可能被改变。但是指向字符串的类类型变量是可以变的,如上,就是s1可以变化,不能变的是”abc” 的内容。
1.2 字符串的判断方式
在String类中,复写了Object中的equals方法,建立了自己独特的判断内容方式,该方法用于判断字符串是否相等。1.3 s1和s2的区别
String s1 = “abc”;String s2 = new String(“abc”);
对于s1和s2的区别:
s1有一个对象,就是”abc”;
s2有两个对象,分别是”abc”,和new String;
1.4 常量池
字符串在内容中有一个常量池,用于存放字符串。如果用到这个常量池中没有的字符串,那么就会创建这个常量,如果有这个常量,就不会创建新的常量,而使用已有的常量。二、字符串的操作方法
String类适用于描述字符串事物,那么就提供了多个方法对字符串进行操作,而字符串的常见操作有,获取,判断,转换,替换。2.1 获取
2.1.1 获取长度,也就是字符串的长度;
int length();2.1.2 根据位置获取位置上的某个字符
char charAt(int index);2.1.3 根据字符获取该字符在字符串中的位置
int indexOf(int ch);返回的是ch在字符串中第一次出现的位置int indexOF(int ch,int fromIndex);从指定位置开始,获取ch在字符串中的位置。
int indexOf(String str);返回str在字符串中第一次出现的位置
int indexOF(String str,int fromIndex);从指定位置开始,获取str在字符串中的位置
2.2 判断
2.2.1 字符串中是否包含某一个子串
boolean contains();特殊之处:indexOf(String str):可以索引str第一次出现位置,如果返回-1表示str不存在,所以也可以用indexOf判断字符串是否包含。
2.2.2 字符串中是否有内容
boolean isEmply():原理就是判断字符串长度是否为零。2.2.3 字符串是否以指定内容开头
boolean startWith(String str);2.2.4 字符串是否以指定内容结尾
boolean startWith(String str);2.2.5 判断字符串内容是否相同
boolean equals(String str);复写了Object类中的equals。2.2.6 判断内容是否相同并忽略大小写
boolean equalsIgnoreCase();2.3 转换
2.3.1 将字符数组转成字符串
String(char[])String(char[],offset,count);将字符数组中的一部分转成字符串。
静态方法:
static String copyValueOf(char[]);
static String copuValueOf(char[] data,intoffset,int count)
static String valueOf(char[]);
2.3.2 将字符串转成字符数组
char toCharArray[];2.3.3 将字节数组转成字符串
String(byte[])String(byte[],offset,count);
2.3.4 将字符串转成字节数组
byte[] getBytes[];2.3.5 将基本数据类型转成字符串
static String valueOf(int);但是还有另外一种方式,比如3+””;也可以将3转成字符串,所以这并不常用
static String valueOf(double);
2.4 替换
2.4.1 替换字符
String replace(old char,new char);原字符串不变,返回一个新字符串,若找不到被替换的字符,则返回原字符串。
2.4.2 替换字符串
String replace(old String,new String);2.5 切割
String[] split(String)str;传入一个要切割的符号,返回的是一个字符串数组
2.6 获取子串
subString(int begin);从指定位置到结尾处
subString(int begin,int end) ;
从指定位置到指定结尾,包含头不包含尾。
2.7 转换,去除空格
2.7.1 将字符串转成大写或者小写
String toUpperCase();String toLowerCase();
2.7.2 将字符串两端的多个空格去除
String trim();2.7.3 对两个字符串进行自然顺序的比较
int compareTo(String);将两个字符串依次比较,返回整数负数或者零表示大小。三、StringBuffer
3.1 StringBuffer的概念
StringBuffer是一个容器,可以对字符串的内容进行修改,它有很多和String相同的方法,StringBuffer的长度是可变的。3.2 StringBuffer的方法
StringBuffer和String类很像,也有着操作字符串的方法,有存储,删除,获取,修改四类方法。3.2.1 存储
StringBuffer的存储方法有两种append();将字符串存储到StringBuffer容器中。
insert(int index,String str);将数据插入指定位置。
3.2.2 删除
delete(int begin,int end);删除缓冲区的数据,含头不含尾deletecharAt(int index)删除指定位置的数据
3.2.3 获取
char charAt(int index);获取指定位置的字符int indexOf(String str)获取字符串的位置
String substring(int start,int end);返回的是一个String,含头不含尾
3.2.4 修改
replace(int start,int end,String str);替换,含头不含尾的替换setcharAt(int index,char ch);替换指定位置的字符
3.2.5 反转
reverse();反转字符串。3.3 StringBuilder
它是后期1.5版本出现的String容器,和StringBuffer用法一样,唯一不同的是不同步。即是升级出现的,升级的三个因素有:
方便书写;提高效率;提高安全性。
四、基本数据类型对象包装类
4.1 基本数据类型
基本数据类型是有8种,分别是byte,short,int,long,boolean,float,double,char。它们对应的包装类是:
通过将基本数据类型包装成对象,就可以使用这些对象的方法。
4.2 Integer建立对象时的小特性
运行结果:
对于Integer对象,内存中也有一个小于常量池,对于小于byte类型(128)的数,若已经存在就不会再开辟新的空间,所以对于两个127的Integer是执行同一地址的,但是128则不是。
相关文章推荐
- 黑马程序员——OC笔记之Foundation框架上
- 如何在面试中发现优秀程序员
- 黑马程序员--Java基础--多线程(一)
- 我们需要更多的程序员,而不是更好的工具
- 四个级别的 “自由” 程序员
- 程序员创业,远离管理软件
- 程序员学炒股(7) 股市心得
- 黑马程序员——OC笔记之内存管理
- 黑马程序员——java复习总结——多线程
- 程序员30后发展
- HashMap和Hashtable的区别
- 黑马程序员-Java基础:集合(双列集合)
- 黑马程序员——反射
- 黑马程序员——OC笔记之购票系统应用实践
- 【黑马程序员】Foundation框架NSDictionary
- 程序员如何更快的适应新工作
- 面试题之变态跳台阶
- 黑马程序员——OC笔记之面向对象三大特征(封装、继承、多态)
- 黑马程序员——25,打印流,合并流,对象序列化,管道流,RandomAccessFile
- 十道海量数据处理面试题与十个方法大总结