Java String 常用 API

一、String简介

Java 字符串是由零个或多个字符组成的有限序列.字符串是Java程序中经常处理的对象,如果字符串运用的不好,将影响到程序的运行效率.

在Java语言中字符串必须包含在一对双引号("")之内.


1.1 String是不可变对象

由于字符串在实际开发中被广泛使用,那么在频繁使用某个字符串时,会出现频繁创建一个字符串对象的现象,java为此对字符串的使用采用了一个优化措施,使得Stirng对象为不可变对象,一旦在内存中创建,内容不能发生变化,若要对字符串内容改变,那么就会创建新对象.这样做的目的是可以最大程度的重用相同内容的字符串以减小系统资源的开销.


1.2 内存编码

java存储每一个字符均使用2个字节保存,使用的是Unicode编码.并且任何一个字符(无论是英文还是汉字)每个字符的长度都是1.所以字符串的长度就是该字符串所有的字符个数.


二、String常用方法

String类存在于java.lang包中,因此可以直接调用String的相关方法而不用import.


2.1 获取字符串长度

(1) length()

该方法用于返回字符串长度.

String str = "Hello";
System.out.println(str.length());//5

2.2 字符串查找

(1) indexOf()

该方法用于返回参数字符串在指定字符串中首次出现的索引位置.

String str = "Hello";
System.out.println(str.indexOf('l'));//2

(2) lastIndexOf()

该方法用于返回指定字符串最后一次出现的索引位置.

String str = "Hello";
System.out.println(str.lastIndexOf("l"));//3
如果lastIndexOf()方法中的参数指定为空字符串"",则返回的结果与调用改字符串length()方法返回结果相同.
String str = "Hello";
System.out.println(str.lastIndexOf(""));//5

2.3 获取指定索引位置的字符

(1) charAt()

该方法用于给定一个下标位置,来获取该字符串中这个位置的字符.

String str = "Hello";
System.out.println(str.charAt(4));//o
2.4 获取子字符串

(1) substring()

该方法返回的是从索引位置开始,截取到直到改字符串结尾的字串.

String str = "Hello";
System.out.println(str.substring(2));//llo
(2) substring()

该方法返回的是从索引位置开始,截取到索引位置接触的字串.

String str = "Hello";
System.out.println(str.substring(2,5));//llo
 
   

2.5 去除空格

(1) trim()

该方法用于将字符串两边的空白(\t、Tab等)去除掉.

String str = " Hello	";
System.out.println(str.trim());//"Hello"

2.6 字符串替换

(1) replaceAll()

该方法可实现将指定的字符或字符串替换成新的字符或字符串.

String str = "root:x:0:0:root:/root:/bin/bash"; 
System.out.println(str.replaceAll(":", "冒号"));//root冒号x冒号0冒号0冒号root冒号/root冒号/bin/bash
2.7 判断字符串的开始与结尾

(1) startsWith()

该方法用于判断当前字符串是否是以给定的字符串开始的.

String str = "Hello";
System.out.println(str.startsWith("He"));//true

(2) endsWith()

该方法用于判断当前字符串是否是以给定的字符串结尾的.

String str = "Hello";
System.out.println(str.endsWith("lo"));//true

2.8 判断字符串是否相等

对于字符串对象进行比较不能简单地使用比较运算符"==". 

详情请参考 ■  Java 字符串比较操作符 == 与 equals 的区别

(1) equals()

如果两个字符串具有相同的字符和长度,则使用equals()方法进行比较时,返回true.

String str1 = "Hello";
String str2 = "Hello";
System.out.println(str1.equals(str2));//true
(2) equalsIgnoreCase()

使用equalsIgnoreCase()方法可以忽略大小写的情况下进行比较两个字符串是否相等.

String str1 = "HELLO";
String str2 = "hello";
System.out.println(str1.equalsIgnoreCase(str2));//true

2.9 字母大小写转换

(1) toUpperCase()

该方法用于将当前字符串中的英文部分的字符全部变为大写后再将新的字符串返回.

String str = "Hello";
System.out.println(str.toUpperCase());//HELLO

(2) toLowerCase()

该方法用于将当前字符串中的英文部分的字符全部变为小写后再将新的字符串返回.

String str = "Hello";
System.out.println(str.toLowerCase());//hello

2.10 字符串分割

(1) split()

该方法用于使用特定字符串拆分给定的字符串.

String str = "root:x:0:0:root:/root:/bin/bash"; 
String[] array = str.split(":");
System.out.println(Arrays.toString(array));//[root, x, 0, 0, root, /root, /bin/bash]
2.11 字符串匹配

(1) matches()

该方法用于使用正则表达式描述的字符串格式规则来匹配当前字符串,若满足那么该方法返回true.否则返回false.

String number = "123";
System.out.println(number.matches("[0-9]+"));//true
2.12 其他基本类型转换为字符串

(1) valueOf()

字符串提供了很多重载的valueOf()方法,可以将其他基本类型的值转换为字符串.

double pi = 3.1415926;
System.out.println(String.valueOf(pi));//"3.1415926"
		
int value = 123;
System.out.println(String.valueOf(value));//"123"
	    
boolean flag = true;
System.out.println(String.valueOf(flag));//"true"
	    
char[] charArr = { 'a', 'b', 'c', 'd', 'e', 'f', 'g' }; 
System.out.println(String.valueOf(charArr));//"abcdefg"

你可能感兴趣的:(Java,API)