- 字符串String对象的常用操作
1.1 遍历字符串
String str = new String("abcdefg");
for (int i = 0; i < str.length(); ++i) {
System.out.println(str.charAt(i));
}
1.2 统计字符个数
int count = 0;
String str = new String("abcdefg");
for (int i = 0; i < str.length(); i++) {
if (str.charAt(i) == 'a') {
count++;
}
}
System.out.println(count);
1.3 拼接字符串
int[] array = {1, 3 ,5, 6, 4, 5};
String s = "";
s += '[';
for (int i = 0; i < array.length; i++) {
if (i == array.length - 1) {
s += array[i];
} else {
s += array[i];
s += ",";
}
}
s += ']';
System.out.println(s);
1.4 字符串反转
String str = new String("abcdefg");
String reverse = "";
for (int i = 0; i < str.length(); ++i) {
reverse += str.charAt(str.length() - 1 - i);
}
System.out.println(reverse);
1.5 字符串的比较
需要使用equals来比较字符串的大小,用==比较的是对象的地址
if (reverse.equals(str)) {
System.out.println("==");
}
-
StringBuilder学习和使用
类似如上使用String拼接,每次拼接,都会创建一个String对象,这对资源造成了巨大的浪费,这里提出了使用StringBuilder类解决问题。
StringBuilder是一个可变的字符串类,这里的可变指的是StringBuilder对象的内容可变StringBuilder和String的区别:
String:内容是不可变的
StringBuilder:内容是可变的
2.1 StringBuilder的添加和反转方法
StringBuilder sb = new StringBuilder();
StringBuilder sb2 = sb.append("hello"); // append()添加数据并且返回StringBuilder类型
// 链式编程
sb.append("hello").append("world").append("java").append("100");
System.out.println("sb: " + sb);
sb.reverse();
System.out.println("sb: " + sb);
2.2 StringBuilder和String的相互转换
2.2.1 StringBuilder转化为String
public String toString(): 通过toString()就可以实现把StringBuilder转化为String
2.2.2 String转化为StringBuilder
public StringBuilderg(String s):通过构造函数就可以实现把String转化为StringBuilder
2.3 StringBuilder的拼接和反转
和String的区别在于String中会构造很多对象,而下面代码只存在一个StringBuilder对象
int[] array = {1, 3 ,5, 6, 4, 5};
StringBuilder sb1 = new StringBuilder();
sb1.append("[");
for (int i = 0; i < array.length; i++) {
if (i == array.length - 1) {
sb1.append(array[i]);
} else {
sb1.append(array[i]).append(",");
}
}
sb1.append("]");
System.out.println(sb1);
System.out.println(new StringBuilder(sb1).reverse()); // 反转,匿名对象的概念