返回类型 | 方法名 | 作用 |
int | length() | 得到一个字符串的字符个数 (一个中文是一个字符,一个英文是一个字符,一个转义字符是一个字符) |
返回类型 | 方法名 | 作用 |
byte[] | getBytes() | 将一个字符串转换成字节数组 |
char[] | toCharArray() | 将一个字符串转换成字符数组 |
String[] | split(String) | 将一个字符串按照指定内容劈开 |
返回类型 | 方法名 | 作用 |
boolean | equals(String) | 判断两个字符串的内容是否一模一样 |
boolean | equalsIgnoreCase(String) | 忽略大小写的比较两个字符串的内容是否一模一样 |
boolean | contains(String) | 判断一个字符串里面是否包含指定的内容 |
boolean | startsWith(String) | 判断一个字符串是否以指定的内容开头 |
boolean | endsWith(String) | 判断一个字符串是否以指定的内容结尾 |
和改变内容有关的方法,都不会直接操作原本的字符串 而是将符合条件的字符串返回给我们,所以注意接收。
返回类型 | 方法名 | 作用 |
String | toUpperCase() | 将一个字符串全部转换成大写 |
String | toLowerCase() | 将一个字符串全部转换成小写 |
String | replace(String,String) | 将某个内容全部替换成指定内容 |
String | replaceAll(String,String) | 将某个内容全部替换成指定内容,支持正则 |
String | repalceFirst(String,String) | 将第一次出现的某个内容替换成指定的内容 |
String | substring(int) | 从指定下标开始一直截取到字符串的最后 |
String | substring(int,int) | 从下标x截取到下标y-1对应的元素 |
String | trim() | 去除一个字符串的前后空格 |
返回类型 | 方法名 | 作用 |
char | charAt(int) | 得到指定下标位置对应的字符 |
int | indexOf(String) | 得到指定内容第一次出现的下标 |
int | lastIndexOf(String) | 得到指定内容最后一次出现的下标 |
String 类别中已经提供了将基本数据型态转换成 String 的 static 方法 ,也就String.valueOf() 这个参数多载的方法
1、String.valueOf(boolean b) : 将 boolean 变量 b 转换成字符串
2、String.valueOf(char c) : 将 char 变量 c 转换成字符串
3、String.valueOf(char[] data) : 将 char 数组 data 转换成字符串
4、String.valueOf(char[] data, int offset, int count) : 将 char 数组 data 中 由 data[offset] 开始取 count 个元素 转换成字符串
5、String.valueOf(double d) : 将 double 变量 d 转换成字符串
6、String.valueOf(float f) : 将 float 变量 f 转换成字符串
7、String.valueOf(int i) : 将 int 变量 i 转换成字符串
8、String.valueOf(long l) : 将 long 变量 l 转换成字符串
9、String.valueOf(Object obj) : 将 obj 对象转换成 字符串, 等于 obj.toString()
要将 String 转换成基本数据型态转 ,大多需要使用基本数据型态的包装类别
比如说 String 转换成 byte ,可以使用 Byte.parseByte(String s) ,这一类的方法如果无法将 s 分析 则会丢出 NumberFormatException
1、byte : Byte.parseByte(String s) : 将 s 转换成 byte
2、byte : Byte.parseByte(String s, int radix) : 以 radix 为基底 将 s 转换为 byte ,比如说 Byte.parseByte(“11”, 16) 会得到 17
3、double : Double.parseDouble(String s) : 将 s 转换成 double
4、float : Float.parseFloat(String s) : 将 s 转换成 float
5、int : Integer.parseInt(String s) : 将 s 转换成 int
6、long : Long.parseLong(String s)
JVM为了提升性能和减少内存开销,避免字符串的重复创建,维护了一块特殊的内存空间——字符串实例池。
String赋值的两种方式。
1、String str = "test";
以这种方式赋值时,JVM会先从字符串实例池中查询是否存在"test"这个对象,
如果存在,直接把实例池中"test"的地址返回给str。如果不存在,则会在实例池中创建"test"对象,并把该对象的地址返回给str。
所以通过==比较是,str1,str2指向的是同一地址,所以返回true;
2、String str = new String("test");
以这种方式赋值时,JVM会先从字符串实例池中查询是否存在"test"这个对象,
若不存在则会在实例池中创建"test"对象,同时在堆中创建"test"这个对象,然后将堆中的这个对象的地址返回赋给引用str。
若实例池存在则直接在堆中创建"test"这个对象,然后将堆中的这个对象的地址返回赋给引用str。