# zb_java0724 **Repository Path**: Fsj0803/zb_java0724 ## Basic Information - **Project Name**: zb_java0724 - **Description**: String字符串 - **Primary Language**: Java - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 4 - **Created**: 2018-07-24 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # zb_java0724 # 课堂笔记 ## 1 String类 ### 1.1 String类 * 1 字符串概念 String字符串:字符的集合。 语法要求,使用""引出,可以有0个,1个,多个字符,注意与字符类型的区分,单引号引出,有且只能有一个字符 * 1 字符串声明与初始化 字符串声明: String 变量名; 字符串初始化: 变量名 = "XXX"; // 常量的形式进行初始化 变量名 = new String();// 对象实例化的形式初始化 变量名 = new String("XXX"); 注意: (1)字符串类是对象类型; (2)字符串作为形参是按值传参; (3)如果使用new创建字符串,在内存中(堆中)申请了一块内存,创建了一个字符串对象【new关键字就是用来分配内存的】 (4)字符串有索引,索引从0开始;【字符串本质字符数组】 (5)字符串变量.length()方法可以获取字符串的长度; (6)字符串一旦初始化完成以后,其长度是不能再改变的; (7)字符串可以使用 + 运算符,叫做字符串的拼接运算,将两个字符串拼接在一起构成一个新的字符串; 重点掌握: 字符串类的常用的方法; 调用的形式: 字符串变量.方法名(); 代码[]: ``` /** * String类常用的方法 */ private static void test01() { // 创建一个String类型的变量 String str00 = "kjflkjdsa;fjoewroi32jrlksjkfjdslkfj;lsa"; // charAt方法 // char ch = str00[i]; //charAt方法实现此功能 char ch = str00.charAt(0); System.out.println("索引为0的字符:" + ch); System.out.println("使用for循环+chaAt方法遍历字符串中的每一个字符:"); // 使用for循环+chaAt方法遍历字符串中的每一个字符 for (int i = 0; i < str00.length(); i++) { System.out.println(" " + str00.charAt(i)); } System.out.println("======================"); boolean isIn = str00.contains("fjoewro"); System.out.println("contains用法:" + isIn); System.out.println("======================"); int iIn = str00.indexOf("fjoewro"); System.out.println("indexOf用法:" + iIn); System.out.println("======================"); String strNew = str00.replace("a;", "**"); System.out.println("str00:" + str00); System.out.println("strNew:" + strNew); System.out.println("======================"); String strSub = str00.substring(4, 8); // kjds【8-4=4】 子串的长度为:8-4 str00.substring(4); // str00.substring(4, 10000); // 越界,因为结束位置不能大于最大索引 System.out.println("strSub:" + strSub); System.out.println("隐藏手机号码的中间四位:"); String strTel = "18812345678"; String strTelNew = strTel.replace(strTel.substring(3, 7), "****"); System.out.println("strTelNew:" + strTelNew); System.out.println("====================="); String str01 = " jkljlkj jlkjlk jlkjl "; System.out.println("str01:" + str01); System.out.println("str01.trim():" + str01.trim()); // 提出前后的空白字符 // split方法应用 String[] strSubs = str00.split(";"); System.out.println("分割的结果是:"); if (strSubs != null && strSubs.length > 0) { for (int i = 0; i < strSubs.length; i++) { System.out.println(" " + strSubs[i]); } } } ``` * 2 == 和 equals方法区别 ==: 对于基本类型来说,判定的是值是否相等; 对于对象类型来说,判定是地址引用是否相同; equals方法: 对于基本类型来说,没有该方法; 对于对象类型来说,判定的是内容是否相同; 代码[]: ``` /** * ==和equals的区别 */ private static void test02() { // 变量1 String str00 = new String("小明"); String str01 = new String("小明"); String str02 = "小明"; String str03 = "小明"; System.out.println("str00 == str01:" + (str00 == str01)); // false System.out.println("str00.equals(str01):" + (str00.equals(str01)));// true System.out.println("str00 == str02:" + (str00 == str02)); // false System.out.println("str00.equals(str02):" + (str00.equals(str02)));// true System.out.println("str02 == str03:" + (str02 == str03)); // true System.out.println("str02.equals(str03):" + (str02.equals(str03)));// true } ``` * 3 字符串在内存中的存储模型 数据结构概念: 栈 堆 队列 栈:先进后出; 队列:先进先出; 堆:树型结构; #### 使用说明 1. xxxx 2. xxxx 3. xxxx #### 参与贡献 1. Fork 本项目 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 码云特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. 码云官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解码云上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目 5. 码云官方提供的使用手册 [http://git.mydoc.io/](http://git.mydoc.io/) 6. 码云封面人物是一档用来展示码云会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)