- String类:
- 字符串方法:
- 测试代码:
- 补充:
- StringBuffer和StringBuilder:
- 示例代码:
- 与String效率比较:
- 附:
package com.oop.String;
import java.util.Arrays;
public class Demo01 {
public static void main(String[] args) {
String str = "zhangsan"; // zhangsan常量存储在字符串池中
str = "xiaoye"; // 给字符串赋值时,并没有修改变量,而是重新开辟了一个空间
String str2 = "xiaoye"; // 赋值时有则重复利用
System.out.println(str);
System.out.println(str2);
// 字符串的另一种创建方式
String str3 = new String("java"); // 在字符串池和堆里面分别创建一个对象
String str4 = new String("java");
System.out.println(str3==str4); // 这里是两个对象,== 比较的是地址,所以是false
System.out.println(str3.equals(str4)); // String里面重写了equals方法,用equals比较的是数据
System.out.println("字符串方法的使用:");
String str5 = "I love you! love!!! LOVE love";
System.out.println(str5.length()); // 输出字符串长度
System.out.println(str5.charAt(0)); // 输出指定位置的字符
System.out.println(str5.charAt(str5.length()-1));
System.out.println(str5.contains("love")); // 是否含有某个子字符串
System.out.println(str5.contains("her"));
System.out.println("=====================");
System.out.println(Arrays.toString(str5.toCharArray())); // 打印字符串对应的数组
System.out.println(str5.indexOf("love")); // 打印指定字符串第一次出现的下标
System.out.println(str5.indexOf("love", 6)); // 打印指定字符串出现的下标,从指定位置开始查找
System.out.println(str5.lastIndexOf("love")); // 打印指定字符串最后一次出现的下标
System.out.println("=====================");
String string = " Hello World ";
System.out.println(string.trim()); // 去掉字符串前后的空格
System.out.println(string.toUpperCase()); // 把小写转换成大写
System.out.println(string.toLowerCase()); // 把大写转换成小写
System.out.println(str5.endsWith("love")); // 判断是否以指定字符串结尾
System.out.println(str5.startsWith("I")); // 判断是否以指定字符串开头
System.out.println("==========================");
System.out.println(str5.replace("love", "hate")); // 用新的字符或字符串替换旧的
String string2 = "My,, name, is xiaoye";
String[] strings = string2.split("[, ]+"); // 用出现一次或者多次的逗号或者空格分割字符串,返回一个数组 [,空格]+
for (String s : strings) {
System.out.println(s);
}
}
}
运行结果:
package com.oop.String;
public class Demo02 {
public static void main(String[] args) {
// 补充两个方法 equals() 和 comparTo()
String string1 = "Hello";
String string2 = "hello";
System.out.println(string1.equalsIgnoreCase(string2)); // equals忽略大小写的比较
String string3 = "abc"; //98
String string4 = "ayz"; //121
System.out.println(string3.compareTo(string4)); // 依次比较字符串中的字符在编码表中的位置 相减 string3 - string4 :b-y
String string5 = "abcd";
String string6 = "abcdef";
System.out.println(string5.compareTo(string6)); // 这种情况比较长度 4-6
}
}
运行结果:
package com.oop.String;
public class Demo03 {
public static void main(String[] args) {
// StringBuffer、StringBuilder与String相比,效率更高(StringBuilder > StringBuffer > String),节省内存
StringBuffer stringBuffer = new StringBuffer();
stringBuffer.append("xiao"); // append()追加
System.out.println(stringBuffer.toString());
stringBuffer.append("ye");
System.out.println(stringBuffer);
stringBuffer.insert(0, "one "); // insert() 添加
System.out.println(stringBuffer);
stringBuffer.replace(0, 3, "love"); // replace() 替换
System.out.println(stringBuffer);
stringBuffer.delete(0,5); // 删除
System.out.println(stringBuffer);
stringBuffer.delete(0, stringBuffer.length()); // 清空
System.out.println(stringBuffer.length());
}
}
运行结果:
package com.oop.String;
public class Demo04 {
public static void main(String[] args) {
String string = "";
long start = System.currentTimeMillis(); // 开始时间
System.out.println(start);
for (int i = 0; i < 99999; i++) {
string += i;
}
long end = System.currentTimeMillis(); // 结束时间
System.out.println(end);
System.out.println(string);
System.out.println((end - start) + "ms");
// 使用StringBuilder增加效率
StringBuilder stringBuilder = new StringBuilder();
long start2 = System.currentTimeMillis(); // 开始时间
System.out.println(start2);
for (int i = 0; i < 99999; i++) {
stringBuilder.append(i);
}
long end2 = System.currentTimeMillis(); // 结束时间
System.out.println(end2);
System.out.println(stringBuilder);
System.out.println((end2 - start2) + "ms");
}
}
运行结果:
最后附上我学习的良心视频链接:Java常用类视频链接
——————————————————————————————
—————————————————
——————



