您的位置:首页 > 其它

07_基本数据类型和包装类

2014-09-24 18:00 211 查看
1. String类

  String类是final类

String对象是一个特殊的对象,一旦初始化就不可被改变

String str = "abc" 与 String str = new String("abc");的区别.

一个是内存中只存在一个对象"abc",一个是存在两个对象"abc"和 new String("abc").

String类复写了Object类中的equals方法,不是比较地址而是比较里面的字符串是否相同.

1.获取

int length()获取长度

char charAt(int index)获取某个位置上字符

int indexOf(int ch):返回从ch在字符串中第一次出现的位置,-1表示没有找到

int indexOf(int ch,int fromIndex):返回从fromIndex开始, ch在字符串中第一次出现的位置,-1表示没有找到

int indexOf(String str):返回str在字符串首次出现位置,-1表示没有找到

int indexOf(String str, int fromIndex):从fromIndex开始返回str在字符串首次出现位置,,-1表示没有找到

2.判断

boolean contains(str)字符串是否包含某一字串

boolean isEmpty():判断是否为空,原理是判断length是否为0

boolean startsWith(str):是否指定位置开头

boolean endsWith(str):是否指定位置结尾

boolean equals(str):判断字符串内容是否相同,复写了Object的equals方法.

boolean equalsIngoreCase(str):忽略大小写的判断内容是否相同

3.转换

3.1 将字符数组转字符串

构造函数: String (char[] buf)

构造函数: String (char[] buf,offset, count)

静态方法:

static copyValueOf(char[] buf);

static copyValueOf(char[] buf,int offset, int count);

static ValueOf(char[] buf);

static ValueOf(char[] buf,int offset, int count);

3.2字符串转字符数组

char[] toCharArray()

3.3将字节数组转字符串

构造函数: String (byte[] buf)

构造函数: String (byte[] buf,offset, count)

3.4字符串转字节数组

byte[] getBytes()

3.5基本数据类型转字符串

static String valueOf(int);

static String valueOf(double);

//3+"" //String.valueOf(3);

4.替换

String replace(char oldch,char newch); 将字符串中的内容进行替换

String replace(String s1,String s2);

  String replaceAll(String regex, String replacement);按照给定的replacement替换此字符串所有匹配给定regex的子字符串.

  String repalceFirst(String regex, String replacement);按照给定的replacement替换此字符串所有匹配给定regex的第一个子字符串.

5.切割

String[] split(regex)

6.获取子串.

String substring(int beginIndex, int endIndex)//包含begin 不包含end 。如果角标不存在则出现越界异常

String substring(int beginIndex);

7.转换

将字符串中的字母转成大小写。

String toUpperCase():大写

String toLowerCase():小写

将字符串两端的空格去除。

String trim();

字符串自然排序比较

int compareTo(str);

2. StringBuffer类

字符串的组成原理就是通过该类实现的

可对字符串内容进行修改

是一个容器

很多方法与String相同

是可变长度的.

最终可通过toString方法返回字符串

既然是一个容器对象。应该具备什么功能呢?

增删改查 C(create)U(update)R(read)D(delete)

1,添加:

StringBuffer append(data);将参数的字符串表示形式追加到序列。

StringBuffer insert(index,data);在指定index位置插入

2,删除:

StringBuffer delete(start,end):包含头,不包含尾。 案例:清空缓冲区sb.delete(0,sb.length());

StringBuffer deleteCharAt(int index):删除指定位置的元素

3,查找(获取):

char charAt(index);

int indexOf(string);

int lastIndexOf(string);

int length()

String subString(int start, int end); 而不是StringBuffer

4,修改:

StringBuffer replace(start,end,string); 将start到end-1替换成对应的String

void setCharAt(index,char);

5. 反转

StringBuffer reverse();

6. 将缓冲区指定数据存储到指定的字符数组中

void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin): sb的srcBegin到srcEnd-1存到dst字符数组中,按从desBegin开始存

jdk1.5以后出现了功能和StringBuffer一模一样的对象。就是StringBuilder

不同的是:

StringBuffer是线程同步的。通常用于多线程。

StringBuilder是线程不同步的。通常用于单线程。 它的出现提高效率。

jdk升级的三个原因:

1,简化书写。

2,提高效率。

3,提高安全性。

八大基本数据类型及其包装类

byte Byte

short Short

int Integer

long Long

boolean Boolean

char Character

float Float

double Double

基本数据类型 转 字符串

基本数据类型+""

基本数据类型.toString(基本数据类型值); //Integer.toString(123);

字符串转基本数据类型

xxx a = Xxx.parseXxx(String)

例如int a = Integer.parseInt("123");

double d = Double.parseDouble("12.33");

boolean b = Boolean.parseBoolean("true");

int十进制转其他进制字符串

转二进制static String toBinaryString(int i)

转八进制static String toOctalString(int i)

转十六进制static String toHexString(int)

任意进制字符串位置int十进制.

int a = Integer.parseInt("123"); //a=123

int a = Integer.parseInt("123",10); //a=123,与上文一样

int b = Integer.parseInt("ff",8); //b=255

或者通过把String类型先封装成Integer对象,然后 对象.intValue()方法得到.

Integer x = new Integer(4);

等价于 Integer x = 4;//自动装箱

x = x + 2;//又能 x.intValue()自动拆箱进行运算再装箱.

Integer m = 128;

Integer n = 128;

syso(m == n);

Integer a= 127;

Integer b= 127;

syso(a== b);

结果分别为false和true

第一个结果为false很好理解,因为两个不同的对象

而第二个由于新特性,byte范围类128~127不会开辟新空间.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: