Java常用类库——String



字符串操作是计算机程序设计中最常见的行为。

String类在线API  http://docs.oracle.com/javase/6/docs/api/java/lang/String.html

一、构造函数(15个)


构造方法

说明

String()

初始化一个新创建的String对象,使其表示一个空字符序列。

使用字节数组构造新字符串(7)

String(byte[] bytes)

通过使用平台的默认字符集解码指定的byte数组,构造一个新的String

String(byte[] bytes , Charset charset)

通过使用指定的charset解码指定的byte数组,构造一个新的String

String(byte[] ascii, int hibyte)

已过时。该方法无法将字节正确地转换为字符。从 JDK 1.1开始,完成该转换的首选方法是使用带有 Charset、字符集名称,或使用平台默认字符集的 String构造方法。

String(byte[] bytes, int offset, int length, Charset charset)

通过使用指定的 charset解码指定的 byte子数组,构造一个新的 String

String(byte[] ascii, int hibyte, int offset, int count)

已过时。该方法无法将字节正确地转换为字符。从 JDK 1.1开始,完成该转换的首选方法是使用带有 Charset、字符集名称,或使用平台默认字符集的 String构造方法。

String(byte[] bytes, int offset, int length, String charsetName)

通过使用指定的 charset解码指定的 byte数组,构造一个新的 String

String(byte[] bytes, String charsetName)

通过使用指定的 charset解码指定的 byte数组,构造一个新的 String

使用字符数组构造新字符串

String(char[] value)

分配一个新的 String,使其表示字符数组参数中当前包含的字符序列。

 

String(char[] value, int offset, int count)

分配一个新的 String,它包含取自字符数组参数一个子数组的字符。

 

String(int[] codePoints, int offset, int count)

分配一个新的 String,它包含 Unicode 代码点数组参数一个子数组的字符。

String(String original)

初始化一个新创建的 String对象,使其表示一个与参数相同的字符序列;换句话说,新创建的字符串是该参数字符串的副本。

String(StringBuffer buffer)

分配一个新的字符串,它包含字符串缓冲区参数中当前包含的字符序列。

String(StringBuilder builder)

分配一个新的字符串,它包含字符串生成器参数中当前包含的字符序列。

构造方法说明:在String类中共有15个构造方法:

大致可以分为五类:

  1. 构造空字符串:Stringstr = new String();

  2. 使用字节数组构造新字符串(7个)

  3. 使用字符数组构造新字符串(2个)

  4. 使用代码点构造新字符串(1个)

  5. 使用类字符串对象构造新字符串

5.1使用字符串构造新字符串Stringa = new String(“abc”);

5.2使用StringBuffer对象构造新字符串StringBuffer sb = new StringBuffer(“abc”);Stringb = new String(sb);

5.3使用StringBuilder对象构造新字符串StringBuilder sbi = new StringBuilder(“abc”); String c = new String(sbi);

String对象是不可边的,String类中每一个看起来会修改String值的方法,实际上都是创建了一个全新的String对象,以包含修改后的字符串内容。而最初的String对象则纹丝不动。

代码:

String str ="adc_123_@#";

System.out.println(str.concat("d"));//adc_123_@#d

System.out.println(str);//adc_123_@#

concat方法实现:

publicString concat(String str){

       int otherLen =str.length();

       if (otherLen ==0) {

           returnthis;

       }

       int len =value.length;

       char buf[] =Arrays.copyOf(value, len +otherLen);

       str.getChars(buf, len);

       returnnew String(buf,true);

}

可以看出该方法只是在原字符串的副本上进行操作,且返回的是一个新的对象returnnew String(buf,true);

String类中其它看似改变值的方法实现类似。

二、方法分类:

1.对象之间的比较

返回值类型

方法

说明

int

compareTo(String anotherString)

按字典顺序比较两个字符串。

int

compareToIgnoreCase(String str)

按字典顺序比较两个字符串,不考虑大小写。

boolean

contentEquals(CharSequence cs)

将此字符串与指定的参数比较。此方法接收的参数可以是CharSequenceStringBufferStringBuilder

boolean

matches(String regex)

 告知此字符串是否匹配给定的正则表达式。

boolean

startsWith

测试此字符串是否以指定的内容开始。

boolean

endsWith

测试此字符串是否以指定的后缀结束。

boolean

1.contains(CharSequence s) 2.contentEquals(CharSequence cs)

当且仅当此字符串包含指定的 char值序列时,返回 true

2.索引信息方法

返回值类型

方法

说明

char

charAt(int index)

返回指定索引处的char 值。注:索引号从0开始

int

codePointAt(int index)

返回指定索引处的字符(Unicode代码点)。

int

codePointBefore(int index)

返回指定索引之前的字符(Unicode代码点)。

int

codePointCount(int beginIndex, int endIndex)

返回此String 的指定文本范围中的 Unicode代码点数。

int

indexOf

返回指定字符在此字符串中第一次出现处的索引。

int

lastIndexOf

返回指定字符在此字符串中最后一次出现处的索引。

3.字符串与其他类型之间的转换

返回值类型

方法

说明

static String

1.copyValueOf(char[]data) 2.copyValueOf(char[] data, int offset, int count)

返回指定数组中表示该字符序列的 String

 

getBytes()

将字符串对象转换成字节数组。

void

getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)

将字符从此字符串复制到目标字符数组。

char[]

toCharArray()

将此字符串转换为一个新的字符数组。

static String

valueOf

返回参数的字符串表示形式。此方法被重载多次,可以接受任意类型的参数。

4.字符串处理

分类

返回值类型

方法

说明

去前后空白

String

trim()

返回字符串的副本,忽略前导空白和尾部空白。此方法不能去除中间的空白。

大小写转换

String

toLowerCase()

使用默认语言环境的规则将此 String中的所有字符都转换为小写。

String

toUpperCase()

 

子串

 CharSequence

subSequence

返回一个新的字符序列,它是此序列的一个子序列。

String

substring(int beginIndex)

返回一个新的字符串,它是此字符串的一个子字符串。

String

substring(int beginIndex, int endIndex)

返回一个新字符串,它是此字符串的一个子字符串。

替换

String

replace

 

String

replaceAll

 

String

replaceFirst

 

分割

String[]

split

根据给定正则表达式的匹配拆分此字符串。

拼接

String

concat(String str)

将指定字符串连接到此字符串的结尾。

 

String

toString

返回此对象本身(它已经是一个字符串!)。

5.其他方法

返回值类型

方法

说明

int

hashCode()

返回此字符串的哈希码。

String

intern()

返回字符串对象的规范化表示形式。(入池操作)

boolean

isEmpty()

当且仅当 length() 0时返回 true

int

length()

返回此字符串的长度。

static String

format(Locale l, String format, Object... args)      format(String format, Object... args)

返回一个格式化字符串。

6.从Object类中继承的方法

clone,finalize,getClass,notify,notifyAll,wait,wait,wait




你可能感兴趣的:(Java常用类库——String)