Java字符串

Java String 类

字符串广泛应用 在Java 编程中,字符串属于对象。

一、创建字符串:

String str = "abc";

注意:String 类是不可改变的,一旦创建了 String 对象,那它的值就无法改变了。

如果需要对字符串做修改,那么应该选择使用 StringBuffer & StringBuilder 类。

二、字符串长度:

String 类有一个方法是 length() 方法,它返回字符串对象包含的字符数(字符串的长度)。

String str = "abcdefg";

System.out.println(str.length());

三、连接字符串:

String 类提供了连接两个字符串的方法:

concat返回 str2 连接 str1 的新字符串。

“abc”.concat("中国");

比较常用的是使用'+'操作符来连接字符串,如:

“abc”+"中国";

四、String 方法:

1.char charAt(int index)

charAt() 方法用于返回指定索引处的字符。索引范围为从 0 到 length() - 1。

String s = "abcde";

char result = s.charAt(3);

System.out.println(result);

2.int compareTo(Object o)

compareTo() 方法用于两种方式的比较:

字符串与对象进行比较。

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

语法:

int compareTo(Object o)

int compareTo(String anotherString)

参数:

o -- 要比较的对象。

anotherString -- 要比较的字符串。

返回值:

如果参数字符串等于此字符串,则返回值 0;

如果此字符串小于字符串参数,则返回一个小于 0 的值;

如果此字符串大于字符串参数,则返回一个大于 0 的值。

String str1 = "String";

String str2 = "String";

String str3 = "Strings中国";

int result = str1.compareTo( str2 );

System.out.println(result);

result = str2.compareTo( str3 );

System.out.println(result);

result = str3.compareTo( str1 );

System.out.println(result);

3.int compareToIgnoreCase(String str)

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

4.String concat(String str)

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

5.boolean equals(Object anObject)

将此字符串与指定的对象比较。

如果给定对象与字符串相等,则返回 true;否则返回 false。

String Str1 = new String("abc");

String Str2 = "abc";

boolean retsult = Str1.equals( Str2 );

System.out.println( retsult );

6.boolean equalsIgnoreCase(String anotherString)

将此 String 与另一个 String 比较,不考虑大小写。

7.byte[] getBytes()

getBytes() 方法有两种形式:

getBytes(String charsetName): 使用指定的字符集将字符串编码为 byte 序列,并将结果存储到一个新的 byte 数组中。

getBytes(): 使用平台的默认字符集将字符串编码为 byte 序列,并将结果存储到一个新的 byte 数组中。

String Str1 = new String("abc");

try{

byte[] Str2 = Str1.getBytes();

System.out.println(Str2 );

Str2 = Str1.getBytes( "UTF-8" );

System.out.println( Str2 );

Str2 = Str1.getBytes( "ISO-8859-1" );

System.out.println( Str2 );

} catch ( UnsupportedEncodingException e){

System.out.println("不支持的字符集");

}

8.int hashCode()

返回此字符串的哈希码。

字符串对象的哈希码根据以下公式计算:

s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]

使用 int 算法,这里 s[i] 是字符串的第 i 个字符,n 是字符串的长度,^ 表示求幂。空字符串的哈希值为 0。

String Str = new String("abc");

System.out.println( Str.hashCode() );

9.int indexOf(int ch)

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

indexOf() 方法有以下四种形式:

public int indexOf(int ch): 返回指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。

public int indexOf(int ch, int index): 返回在此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索,如果此字符串中没有这样的字符,则返回 -1。

int indexOf(String str): 返回指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。

int indexOf(String str, int index): 返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始,如果此字符串中没有这样的字符,则返回 -1。

参数:

ch -- 字符。

index -- 开始搜索的索引位置。

str -- 要搜索的子字符串。

String Str = new String("abcdefg");

System.out.println(Str.indexOf( 'o' ));

System.out.println(Str.indexOf( 'o', 3 ));

10.int lastIndexOf(int ch)

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

lastIndexOf() 方法有以下四种形式:

public int lastIndexOf(int ch): 返回指定字符在此字符串中最后一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。

public int lastIndexOf(int ch, int fromIndex): 返返回指定字符在此字符串中最后一次出现处的索引,从指定的索引处开始进行反向搜索,如果此字符串中没有这样的字符,则返回 -1。

public int lastIndexOf(String str): 返回指定字符在此字符串中最后一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。

public int lastIndexOf(String str, int fromIndex): 返回指定字符在此字符串中最后一次出现处的索引,从指定的索引处开始进行反向搜索,如果此字符串中没有这样的字符,则返回 -1。

11.int length()

返回此字符串的长度。

12.boolean matches(String regex)

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

参数:

regex -- 匹配字符串的正则表达式。

String Str = new String("abcdefg");

System.out.println(Str.matches("(.*)def(.*)"));

13.String replace(char oldChar, char newChar)

返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。

String Str = new String("hello");

System.out.println(Str.replace('o', 'T'));

14.String replaceAll(String regex, String replacement)

使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串,成功则返回替换的字符串,失败则返回原始字符串。

15.String[] split(String regex)

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

String Str = new String("ab-c-de-f");

byte b[]=Str.split("-");

for (String s: b){

System.out.println(s);

}

16.String[] split(String regex, int limit)

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

参数:

regex -- 正则表达式分隔符。

limit -- 分割的份数。

17.String substring()

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

语法:

public String substring(int beginIndex)

public String substring(int beginIndex, int endIndex)

参数:

beginIndex -- 起始索引(必填)。

endIndex -- 结束索引(不必填)。

String Str = new String("abcdefg");

System.out.println(Str.substring(4) );

System.out.println(Str.substring(3, 5) );

18.char[] toCharArray()

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

String Str = new String("abcde");

System.out.println( Str.toCharArray() )

19.String toLowerCase()

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

String Str = new String("ABC");

System.out.println( Str.toLowerCase() );

20.String toLowerCase(Locale locale)

使用给定 Locale 的规则将此 String 中的所有字符都转换为小写。

21.String toString()

返回此对象本身。

String Str = new String("ABC");

System.out.println( Str.toString() );

22.String toUpperCase()

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

23.String toUpperCase(Locale locale)

使用给定 Locale 的规则将此 String 中的所有字符都转换为大写。

24.String trim()

返回字符串的副本,忽略前导空白和尾部空白(删除头部和尾部空白符)。

String Str = new String(" abc ");

System.out.println( Str.trim() );

25.static String valueOf(primitive data type x)

返回给定data type类型x参数的字符串表示形式。

valueOf() 方法有以下几种不同形式:

valueOf(boolean b): 返回 boolean 参数的字符串表示形式。.

valueOf(char c): 返回 char 参数的字符串表示形式。

valueOf(char[] data): 返回 char 数组参数的字符串表示形式。

valueOf(char[] data, int offset, int count): 返回 char 数组参数的特定子数组的字符串表示形式。

valueOf(double d): 返回 double 参数的字符串表示形式。

valueOf(float f): 返回 float 参数的字符串表示形式。

valueOf(int i): 返回 int 参数的字符串表示形式。

valueOf(long l): 返回 long 参数的字符串表示形式。

valueOf(Object obj): 返回 Object 参数的字符串表示形式。

int a=1;

double b = 100.00;

char[] c = {'a', 'b', 'c', 'd', 'e'};

System.out.println(String.valueOf(a) );

System.out.println(String.valueOf(b) );

System.out.println(String.valueOf(c) );

推荐阅读更多精彩内容