Java--22---String类

来源:互联网 发布:hadoop与java的关系 编辑:程序博客网 时间:2024/05/17 07:14

在Java中用于描述字符串的类就是String。

Java程序中的所有字符串字面值(如“abc”)都作为此类的实例实现。

字符串最大的一个特点就是:字符串是常量,它们的值在创建之后不能更改。字符串缓冲区支持可变的字符串。



public class sss {public static void main(String[] args) {// TODO Auto-generated method stubString s1 = "abc";s1 = "sss";System.out.println(s1);}}

打印结果却是:sss

但是我们要明白的是,变化的不是abc 变化的是s1所指向的对象。


public class sss {public static void main(String[] args) {// TODO Auto-generated method stubString s1 = "abc";String s2 = new String("abc");System.out.println(s1==s2);System.out.println(s1.equals(s2));}}


String类复写了Object类中的equals方法。该方法用于判断字符串内容是否相同。

 

S1和s2有什么区别?

s1在内存中有一个对象,s2在内存中有两个对象


public class sss {public static void main(String[] args) {// TODO Auto-generated method stubString s1 = "abc";String s2 = new String("abc");String s3 = "abc";System.out.println(s1==s2);System.out.println(s1==s3);}}


打印结果:

False

True

S3在初始化的时候发现字符串“abc”已经在常量池中存在就不会再进行创建,所以s1和s3指向的是同一个对象。

 

字符串常见的方法:

1.获取

a) 字符串中包含的字符数(长度)  int length ()

b) 根据位置获取位置上的某个字符 char charAt(int index)

c) 根据字符获取该字符的位置 

d) 

int indexOf (char ch) 返回的是ch在字符串中第一次出现的位置

int indexOf (String ch):返回的是ch在字符串中第一次出现的位置

int indexOf (int ch,int fromIndex):从fromIndex指定位置开始,获取ch在字符串中的位置

int indexOf (String ch,int fromIndex):从fromIndex位置开始,获取ch在字符串中出现的位置

反向索引一个字符出现的位置。int indexOf (int ch)

 

2.判断

a) 字符串中是否包含某一个子串 boolean contains (str) 特殊之处:indexOf(str):可以索引str第一次出现位置,如果返回-1,则表示该str不在字符串中存在。

b) 字符串中是否有内容 boolean isEmpty ()

c) 字符串是否以指定内容开头 boolean startsWith (str)

d) 字符串是否以指定内容结束  boolean endsWith (str)

e) 判断字符串的内容是否相同 equals()

f) 判断内容是否相同并忽略大小写 equalsIgnoreCase()

3.转换

a) 将字符数组转换成字符串

构造方法:

String(char[] )  

String (char[] ,offset ,count)将字符数组中的一部分转换为字符串

静态方法:

Static String copyValueOf (char[])

Static String copyValueOf (char[] data,int offset,int count)

Static String ValueOf (char[])

b) 将字符串转换成字符数组

Char[] toCharArray ()

c) 将字节数组转换成字符串

String(byte[] )  

String (byte[] ,offset ,count)

d) 将字符串转换成字节数组

Byte[] getBytes()

e) 将基本数据类型转成字符串

Static String ValueOf (int)

Static String ValueOf (double)

字符串和字节数组在转换过程中是可以指定编码表的。

4.替换

String replace ( oldchar ,newchar)如果要替换的不存在,返回的是原串

 

5.切割

String split(regex)

6.子串,获取字符串中的一部分

String substring(begin)从指定位置开始到结尾,如果角标不存在会出现角标越界异常

String substring(begin,end)

7.转换 去除空格 比较

a) 将字符串转成大写或者小写

Sting toUpperCase()

Strign toLowerCase()

b) 将字符串两端的多个空格去除

String trim ()

c) 对两个字符串进行自然顺序的比较

int compareTo (string)








0 0