Java的字符串由String类来构造,一个String值是一串可以由索引访问的char值。
字符串遍历
String str = "acdfjkl";
-
直接利用索引
for (int i = 0; i < str.length(); i++){ char ch = str.charAt(i); } -
转化为字符数组(推荐此方法)
char[] ch = str.toCharArray(); for (char c : ch){ System.out.println(c); }
类型转换
-
将
String类型转换为基本的数据类型:String str1 = "123"; String str2 = "45.6"; String str3 = "true"; int a = Integer.parseInt(str1); // 123 double d = Double.parseDouble(str2); // 45.6 boolean flag = Boolean.parseBoolean(str3); // true -
将基本的数据类型转换为
String类型:int a = 123; double d = 45.6; boolean flag = true; String str1 = a + ""; String str2 = d + ""; String str3 = flag + "";
取子字符串
由于java中的String类型是不可变类型,所以对原字符串取子串实际上是实例化了一个新的字符串。
String str = "abcdefgh";
subStr = str.subString(2, 5); // cde
分割字符串
在java中分割字符串是通过正则表达式来进行分割,返回字符串数组:
String str = "aa bb cc dd";
String[] res = str.split(" "); // [aa, bb, cc, dd]
// split()函数接受的参数为正则表达式。
可变字符串
由于String类是不可变类型,为了便于对字符串进行操作,提出了StringBuilder类来直接对字符串进行操作。支持可变字符串的还有StringBuffer类,区别在于StringBuffer支持多线程安全,而StringBuilder的效率更高。
StringBuilder的常用操作如下:
-
构造函数(四种)
-
StringBuilder()– 内容为空,并设置容量为16个字节; -
StringBuilder(CharSequece seq)– 使用seq初始化,容量在此基础上增加16 -
StringBuilder(int capacity)– 设置特定容量 -
StringBuilder(String str)– 使用str初始化,容量在此基础上增加16
-
-
append方法StringBuilder类对几乎所有的基本类型都重载了append方法,并支持直接append数组。-
append(int a)– 支持所有基本类型 -
append(char[] arr)– 直接增加数组 append(char[] arr, int offset, int len)append(String str)
-
-
insert方法insert方法可以在指定位置插入字符、字符串和数组-
insert(int offset, char c)– 支持所有的基本类型 -
insert(int index, char[] arr, int offset, int len)– 插入字符数组 -
insert(int offset, String str)– 插入字符串
-
-
其它常用方法(可改变内容)
-
delete(int start, int end)– 删除[start, end)区间的字符串 -
deleteCharAt(int index)– 删除index位置的字符 -
reverse()– 字符串反转; -
setCharAt(int index, char ch)– 使用ch替代位置index处的字符 -
replace(int start, int end, String str)– 使用str替换子序列 -
setLength(int newLength)– 重新设置字符串长度
-