字符串类
字符串类属于系统类
需要注意:字符串 是字符串常量 存在于方法区的常量池中
如何学习:系统类的方法
1.有没有关键字 static 修饰
2.返回值的类型
3.方法名,一般方法名都是见名知意的
4.参数列表(看方法需要什么)
String s1="abc"; 这种创建形式 会先去静态区中找有没有这样的一个字符串
如果有地址就会指向这个字符串 ,没有就会创建一个
String s3=new String("abc"); 会在堆中生成一个对象 在指向栈中的变量名的同时,
也指向静态区的字符串
//修改了 字符串引用(地址) //指向了不同的地址 而不是字符串本身被修改了 //看系统方法时 拼接 截取等操作字符串的一类方法 //都是返回一个新的字符串 String s1="abc"; s1="wanglong"; System.out.println(s1); //s2相当于在方法区的常量池中创建了一个字符串 String s2="abc"; //s3是在堆内存中 开辟一块空间 String s3=new String("abc"); String s4="abc"; //==对象比的是地址 System.out.println(s2==s4); //equals 把两个字符创转换成字符数组 一位一位的进行比较 System.out.println(s2.equals(s4)); System.out.println(s2==s3); //s2和s3 有什么区别? //s2 是一个对象 s3 是两个对象 "abc" 和 new出来的对象这里列举了一些常用的字符串方法
/* 常用的方法 下面列举了一部分 * 替换 切割 获取子串 转换大小写 去空格 比较 判断两个字符串相等(忽略大小写) 把字符数组 转化为 字符串 把字符串转化为 字符数组 判断字符串是否为空 */ public class Demo03 { public static void main(String[] args) { // fun1(); // fun2(); // fun3(); // fun4(); // fun5(); // fun6(); // fun7(); } private static void fun7() { // 基本数据类型转换成字符串 String valueOf = String.valueOf(1000); System.out.println(valueOf); } private static void fun6() { // 判断字符串是否为空 String string = ""; boolean empty = string.isEmpty(); System.out.println(empty); // 字符串拼接 String s1 = "wan"; String s2 = "long"; String s3 = s1 + s2; System.out.println(s3); String concat = s1.concat(s2); System.out.println(concat); } private static void fun5() { // 把字符数组转化成字符串 char[] array = { 'w', 'a', 'n', 'l', 'o', 'n', 'g' }; String string = new String(array); System.out.println(string); // 字符串转化成字符数组 String s1 = "wanglong"; char[] charArray = s1.toCharArray(); for (char c : charArray) { System.out.println(c); } } private static void fun4() { // 去空格 String string = " abc def "; String trim = string.trim(); System.out.println(trim); // 字符串比较 String s2 = "abcAB"; String s3 = "Abc"; // 相等返回的是0 返回正值说明前面大 负值前面小 // 字符不一样的时候 按ASCII表 返回两个字符的差值 // 长度不一样的时候 返回的是位数的 差值 // 一位一位比较 字符不一样就做差值 int compareTo = s2.compareTo(s3); System.out.println(compareTo); } private static void fun3() { // 获取子字符串 String string = "wanglong"; // 从传入的索引这一位开始截取(包括3) String substring = string.substring(3); System.out.println(substring); // [0,3)留头不留尾 实际[0,2] String substring2 = string.substring(0, 3); System.out.println(substring2); } private static void fun2() { // 分割 String string = "wanglong.pengqian.liushankun"; // 使用转义符 String[] split = string.split("\\."); // 增加for循环(专门用来遍历的) for (String sds : split) { // String sds 表示容器中的每一个元素 System.out.println(sds); } } private static void fun1() { String string = "wanglong"; // 替换 String replace = string.replace("w", "l"); System.out.println(replace); // 替换字符串 String replace2 = string.replace("long", "ba"); System.out.println(replace2); } }