《java从入门到精通》个人笔记-第五章 字符串

第五章

  1. 在java语言中将字符串作为对象来处理,通过java.lang包中的String类来创建字符串对象。(用“”双引号包围的都是字符串,“1+3”输出就是1+3,不是4。)

  2. 声明字符串变量必须经过初始化才能使用。

  3. String的常用构造方法
    (1) String(char a[])用一个字符数组a创建String对象。
    在这里插入图片描述
    (2) String(char a[], int offset, int length)提取a中的一部分创建一个字符串对象,offset表示开始位置,length表示截取长度。
    在这里插入图片描述
    (3) String(char[] value)与(1)相似。
    (4) 引用字符串常量创建对象。引用相同的常量,指向同一实体。
    在这里插入图片描述

  4. 连接字符串:用“+”去连接。(相连的字符串不能分开在两行书写,当写满换行时可用“”+“”连接。)当字符串与其他数据类型连接时,其他数据会转换成字符串,转换成字符串用的是toString()方法。

  5. 获取字符串长度:语法:字符串对象.length();(此方法返回的字符串长度从1开始包括空格。)

  6. 字符串查找:indexOf()方法、lastIndexOf()方法
    indexOf(String s)方法:返回搜索的字符或字符串首次出现的位置。
    语法:字符串对象. indexOf(要搜索的字符串),这里的位置取决于字符串的下标即从0~length()-1读。没有检索到,返回-1。
    lastIndexOf(String s)方法:返回搜索的字符或字符串最后一次出现的位置。
    语法:字符串对象. lastIndexOf (要搜索的字符串),位置读法同样是0~length()-1。没有检索到,返回-1。
    lastIndexOf的妙用:lastIndexOf(“”)此时得到的结果就是字符串的长度。
    在这里插入图片描述

  7. 获取指定索引位置的字符:charAt()方法,语法:字符串对象名.charAt(int 要返回字符的下标)(注意提到下标一定从0开始。)

  8. 字符串操作:
    获取字符串:substring()利用字符串下标进行截取。
    (1) substring(int beginIndex)该方法返回的是从指定索引位置开始截取到该字符串结尾的子串。语法:字符串对象. substring(int 指定开始索引的位置)
    (2) substring(int beginIndex,int endIndex)从某一位置开始到某一位置结束的截取。语法:字符串对象. substring(int 指定开始索引的位置,int 指定结束索引的位置)
    去除空格:trim()方法返回字符串的副本,忽略前导空格和尾部空格,中间空格仍然存在。
    在这里插入图片描述
    答案是16,11。
    字符串替换:replace()方法将指定的字符或字符串替换成新的字符或字符串。
    语法:字符串对象.replace(char 要被替换的字符或字符串, char 新的字符或字符串)(如果要被替换的字符串没有出现在该对象表达式中,则将原字符串返回。如果要替换的重复出现了多次,那么会将所有都替换。)
    判断字符串的开始与结尾:startsWith()方法和endsWith()方法。返回值都为boolean型。
    startsWith()方法:判断当前字符串对象的前缀是否为参数指定的字符串。
    语法:字符串对象. startsWith(String prefix) prefix是指作为前缀的字符。
    endsWith()方法:判断当前字符串对象是否为给定的子字符串结束。
    语法:字符串对象. endsWith(String suffix) suffix是指作为后缀的字符串。
    判断字符串是否相等:比较运算符“==”比较的是两个字符串的地址是否相同。但即使两个字符串的内容相同,两个对象的内存地址也是不同的,所以不能用比较运算符。此时,应使用equals()方法和equalsIgnreCase()方法。
    equals()方法:如果两个字符串具有相同的字符和长度,则用它比较,且区分大小写。
    语法:字符串对象.equals(String otherstr)
    equalsIgnoreCase()方法:忽略大小写的情况下比较。
    语法:字符串对象. equalsIgnoreCase (String otherstr)
    按字典顺序比较两个字符串:compareTo()方法,基于比较各个字符的Unicode值。如果按字典顺序,此String对象位于参数字符串之前,则比较结果为一个负整数;如果按字典顺序,位于之后,则比较结果为一个正整数;如果两个字符串相等,则结果为0。区分大小写。
    语法:字符串对象.compareTo(String otherstr)
    字母大小写转换:toLowerCase()方法、toUpperCase()方法
    toLowerCase()方法:将所有字符从大写转换成小写。若没有需要转换的,则返回原字符串。
    语法:字符串对象.toLowerCase()
    toUpperCase()方法:将所有字符从小写转换成大写。若没有需要转换的,则返回原字符串。
    语法:字符串对象.toUpperCase()
    字符串分割:split()方法使字符串按指定的分割字符或字符串对内容进行分割,分割的结果存放在字符串数组中。
    (1) split(String sign) sign为分割字符串的分隔符,可用正则表达式。(没有统一的分割符号,可以自己定义,定义多个分隔符则用“|“隔开书写)
    语法:字符串对象.split(String sign)
    (2) split(String sign, int limit) limit限制分割的次数

  9. 格式化字符串:format()方法用与创建格式化的字符串。
    (1) format(String format, Object…args) format:格式字符串
    args:格式字符串中由格式说明符引用的参数。如果还有格式说明符以外的参数,则忽略这些额外的参数。此参数的数目是可变的,可以为0.
    (2) format(Local 1, String format, Object…args) 1:格式化过程中要应用的语言环境,如果1为null,则不进行本地化。
    日期和时间字符串格式化:可以通过这个输出当天的日期和时间。获取的是当前静态时间。
    语法:String.format(String format, Object…args)
    常规类型格式化:可用于任何参数类型转化。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  10. 使用正则表达式:常被用于检查某一字符串是否满足某一格式,常用作用户名密码的限定和检验。
    在这里插入图片描述
    正则表达式中“ . “代表任意一个字符,所以想使用” . “则必须用转义字符 \。
    正则表达式可以用[ ]括起来若干个字符来表示一个元字符,该元字符可代表方括号中任意一个字符,比如reg = “[abc]4“,这样的字符串a4,b4,c4都是和正则表达式匹配的字符串。
    在这里插入图片描述

  11. 字符串生成器:创建成功的字符串对象,其长度是固定的,内容不能被改变和编译。虽然使用“+“可以附加,但也会产生一个新的String实例,会在内存中创建新的字符串对象,这样会增大系统的开销。而采用StringBuilder类,可以提高增加字符串的效率。
    SringBuilder类常用方法:
    (1) append()方法:用于向字符串生成器中追加内容。语法:append(要追加到字符串生成器中的内容,可以是任何数据或者其他对象)
    (2) insert(int offset arg)方法:用于向字符串生成器中指定位置插入数据内容。
    Offset:字符串生成器的位置 arg:插入的内容。
    (3) delete(int start ,int end)方法:移除此序列的子字符串中的字符。从指定的start处开始,一直索引end-1处的字符,如果不存在这种字符,则一直到序列尾部,start等于end,则不发生任何更改。

提出问题:toString()方法有什么作用?在什么情况下使用?
toString() 方法返回此对象本身(它已经是一个字符串)。当我们打印一个对象的引用时,实际是默认调用这个对象的toString()方法。当打印的对象所在类没有重写Object中的toString()方法时,默认调用的是Object类中toString()方法。在进行String类与其他类型的连接操作时,自动调用toString()方法。
例如:Date now = new Date();
System.out.println("now = " + now);//相当于下一行代码
System.out.println("now = " + now.toString());

提出问题:正则表达式怎么使用?
很多语言都有其正则表达式的书写方式,https://www.runoob.com/regexp/regexp-intro.html 这个网站可以了解到很多正则表达式的内容。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值