黑马程序员——String类的使用
来源:互联网 发布:壁虎数据恢复免root版 编辑:程序博客网 时间:2024/06/05 16:14
String类
字符串是一个特殊的对象,一旦初始化就不可以被改变。
字符串对象一旦被初始化就不会被改变。
例如:String s=”abc”;
String s1=”abc”;
两个对象都指向同一个地址。所以我们可以把右边的字符串比喻成常量池,当池中已有这个常量时,新的引用不会再次创建字符串。常量池中的变量可以共享。
字符串常量池的特点:
池中没有就建立,池中有,直接使用。
String str=”abc”和String str1=new String(“abc”);的区别
str是在字符串常量池中获取的对象,str1是在堆中new出来的对象,所以地址不同。
String类中的equals方法复写了Object的equals方法,建立了String类中自己的判断字符串内容是否相等的依据。其实就是比较字符串内容。
String类的方法
1,获取字符串长度个数。
int length();
2,根据位置获取字符。
char charAt(intindex);
3,根据字符获取在字符串中第一次出现的位置。
int indexOf(int ch );
int indexOf(int ch ,int fromIndex);从指定位置获取在字符串中第一次出现的位置。
4,获取字符串中的一部分字符串。别名子串。
Stringsubstring(int beginIndex, int endIndex):包含begin,不包含end。
5,转换
String[]split(String regex);
6,String replace(char oldChar,charnewChar);返回一个新的字符串替换所有oldChar得到的。
7,将字符串两端的空格去除。
String trim();
8,将字符串进行连接。
Stringconcat(String );
StringBuffer类
字符串缓冲区类。是一个容器。线程安全的可变字符序列。
字符串(String)的组成原理是通过StringBuffer类实现的。
特点:
长度是可变化的。
可以直接操作多个数据类型。
最终会通过toString方法变成字符串。
与String区别?
答:String一旦被赋值,值将不能发生改变,而StringBuffer值还可以改变。因StringBuffer采用的是缓冲机制。一开始,首先开辟一些空间,然后,随着数据的增多,还可以继续开辟空间。这些操作的是同一个对象。
String浪费内存,在操作过程中产生大量的临时对象。
StringBuffer返回的还是StringBuffer类型。
增删改查方法
CURDàcreate update read delete
1)存储
StringBuffer append(int i);//将指定数据作为参数添加到已有数据结尾处。
//此处的参数是基本数据类型,但不支持byte、short数据类型。
StringBuffer insert( index ,数据);//可以将数据插入指定index位置。
2)删除
StringBuffer Delete(start,end); //删除缓冲区的数据,含头不含尾
StringBuffer Delete(index);//删除指定位置的字符
eg:清空缓冲区(所有数据)
StringBuffersb = newStringBuffer("abcde");
StringBuffer sb = newStringBuffer("abcde");
sb.delete(0,sb.length());
3)获取
char charAt(int index);
int indexOf(String str);
int length();
String substring(int start ,int end );
4)替换和截取
StringBuffer replace();//替换。把开始到结束位置的字符用一个新的字符串给替换。
Stringsubstring();//截取。注意,返回值是String类型,操作的不是同一对象。
5)反转
StringBuffer reverse();将字符缓冲区中的字符反转。
四、StringBuilder类
一个可变的字符序列。此类提供一个与StringBuffer兼容的API,但不保证同步。该类被设计用作StringBuffer的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)。如果可能,简易优先采用StringBuilder类,因为此类比StringBuffer效率高。(StringBuilder在JDK1.5版本之后出现的)
StringBuilder和StringBuffer的功能是一样的,但是有区别:
StringBuffer(JDK1.0)是线程安全的。一般用于多线程。
StringBuilder(JDK1.5)不保证线程安全。一般用于单线程。
一般来说,我们写的程序都是单线程的,所以,用StringBuilder,效率高。以后开发建议使用StringBuilder。
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------- 黑马程序员——String类的使用
- 黑马程序员---string类的使用
- 黑马程序员—String类
- 黑马程序员——day13字符串String的使用
- 黑马程序员——String类方法应用的总结
- 黑马程序员——java的String相关类
- 黑马程序员——String类常见的操作方法
- 黑马程序员——String类
- 黑马程序员——String类
- 黑马程序员——String类
- 黑马程序员——【java】String类
- 黑马程序员——String类
- 黑马程序员——String类
- 黑马程序员——String类
- 黑马程序员——String类
- 黑马程序员——String类
- 黑马程序员——String类
- 黑马程序员——String类
- HDOJ 题目3466 Proud Merchants(需排序的01背包)
- 1068: 找零钱
- addSubview和insertSubview 区别
- codevs 1482 路线统计
- c++初试-操作符重载(3)
- 黑马程序员——String类的使用
- 汽车人生系列之(二): 关于汽车的几个比喻
- centos安装配置ant
- Oracle ODBC驱动安装及详细配置(不需安装客户端)
- 第十周项目二——M$pszi$y是嘛意思?
- kafka文档(5)----0.8.2-C/C++客户端介绍
- Java程序员笔试面试之Java基础
- 自定义UITableViewCell的背景样式
- C#索引器