java基础———第十二天

String类

特点:

字符串是一个特殊的对象,该对象一旦被初始化,就不可以改变。

构造方法:

String s = new String();

String s1 = "";

以上创建为同一对象。

A:直接给字符串对象赋值
String s = "Hello";
B:通过构造方法传递字节数组参数
byte[] b = {97,98,99,100,101};
String s = new String(b);//把字节数组转换成字符串
String s = new String(b,1,3); //从1开始,取得3个
C:通过构造方法传递字符数组参数
char[] ch = {'h','e','l','l','o'};
String s = new String(ch);//变成hello的字符串
String s = new String(ch,1,3);

String对象具备的常用功能:

A:判断
**equals :判断字符串的内容是否相同,内容要一模一样
**equalsIgnoreCase: 判断字符串的内容是否相同,不区分大小写
**startsWith: 是否以指定的字符串开头
**endsWith: 是否以指定的字符串结尾
**contains:判断某个字符串是否包含指定的字符串
**isEmpty: 判断字符串是否为空


B:获取
**charAt :获取指定索引处的字符
**length :获取字符串的长度
***注意: 数组length属性,字符串有length方法.
**indexOf: 获取指定字符/字符串第一次出现的索引
 indexOf(char/String,fromIndex) :从指定位置开始 获取指定字符/字

     符串第一次出现的索引
 
 lastIndexOf:反向索引…………
 lastIndexOf(char/String,formIndex)
**substring(int index) :从指定位置到末尾截取字符串.
 subString(int beginIndex,int endIndex): 从指定开始位置,到指定的

末尾位置,截取字符串.

C:转换
**getBytes: 把字符串转换成一个字节数组
**toCharArray: 把字符串转成一个字符数组  重点
**static String copyValueOf(char[] data) 
          返回指定数组中表示该字符序列的 String。 
 static String copyValueOf(char[] data, int offset, int count) 
          返回指定数组中表示该字符序列的 String。 
**把基本数据类型转成字符串 次重点
int x = 3;
如何得到字符串呢: x+""
现在怎么写? String.valueOf(x)
**toUpperCase  把字符串中所有字符串转成大写
**toLowerCase  把字符串中所有字符串转成小写
**concat 字符串的连接

D:其他
**替换 

       replace(char oldChar,char newChar)
      replace(String oldString,String newString)
**切割
      String[] split(String str)//括号里是条件,
**去除字符串两端的空格
String trim()
**按照字典(自然,a-z)顺序对字符串进行比较.
compareTo

StringBuffer类

定义:

线程安全的可变字符序列。一个类似于 String 的字符串缓冲区,但不能修改。虽然在任意时间点上它都包含某种特定的字符序列,但通过某些方法调用可以改变该序列的长度和内容。(其实它就是一个容器)

特点:
1,而且长度是可以变化的。
2,可以直接操作多个数据类型。
3,最终会通过toString方法变成字符串


(CURD)  C creat U update R read D delete 
1,存储;
StringBuffer append();将指定的数据作为参数,添加到已有数据的结尾处.
StringBuffer insert(index,数据);将数据插入指定位置上
2,删除;
StringBuffer delete(start,end);包含start,不包含end
StringBuffer deleteCharAt(intdex);删除指定位置的字符
3,获取;
char charAt(index);获取一个
int indexOf(String str);根据字符串获取位置
int lastIndexOf(String str);根据字符串从后面获取位置
int length();//获取长度
String substring(int start);获取子串
String substring(int start,int end);获取子串,不包含尾巴
4,修改;
StringBuffer replace(int start, int end, String str)//修改:头,尾巴,字符串
void setCharAt(int index, char ch)//注意喽,没有返回类型
5,反转;
StringBuffer reverse()//反转
6,将缓冲区中的指定数据存储到指定字符数组中
void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)  

StringBuilder类
在JDK1.5版本之后出现了StringBuilder
不同之处:
StringBuffer是线程同步
StringBuilder是线程不同步的
(以后遇到程序的时候,遇到多线程的时候遇到StringBuffer)


升级三个因素:
提高效率、简化书写、提高安全性。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章