Java 之字符串 --- String 类

String 类型属于哪种类

 String 是被 publid final 修饰的类

String 提供的构造方法

什么叫做字符串常量池

什么时候字符会被加入字符常量池

  • 使用 new String(char[]) 创建的字符串对象不会自动加入字符串常量池。
  • 只有通过字符串字面量创建的字符串或显式调用 intern() 方法的字符串才会被加入到字符串常量池中。
  • String s2 = "abc"; 

以下代码打印什么(s1 与 s2 地址是否相同)

char[] ch = new char[]{'a','b','c'};
        String s1 = new String(ch);

        String s2 = "abc";
        System.out.println(s1 == s2);

由此思考下题 

 

画图解释如下

“池”的理解

str1 用 ''=='' 与str2 比较时,比的是地址

字符串的内存存储

String str1 = "abc";
String str2 = "abc";
System.out.println(str1 == str2);


//打印结果为 true
 

 

String str1 = new String(original:"abc");
String str2 = new String(original:"abc");
System.out.println(str1 == str2);


//打印结果为 false

字符串比较

怎么比较两个 String 类型内容是否相同(一共有3种)

忽略大小写比较如何实现

字符串查找

实现字符串查找的功能的方法与其使用方法(返回值、用什么类型接受)、注意事项

字符串转换 

 如何把整数转换成字符串

如何把小数转换成字符串

把对象转换为字符串

情况一:当类中没实现 toString ,打印的是对象的地址

情况二:当实现 toString 后 ,打印结果为 Student{name='hanmeimei',age=18};

把字符串转成数字 (包括int,double类型)

字符串的大小写转换怎么实现,注意此时是重新生成了一个字符串对象,并不是把原来的字符串改变了

如何把字符串转成数组

如何把数组转成字符串

字符串的格式化

如何实现字符串的格式化

字符串的替换

如何实现字符串替换,注意不同的替换方式的区别,也是产生了一个新的字符串对象

一下替换方法的区别

 字符串的拆分

如何实现字符串的拆分

String[ ] result = str.split(regex : " "); 与  String[ ] result = str.split(regex: " " ,limit: 2);的区别

怎么实现以'' . '' " - " '' + '' 等符号实现拆分

怎么实现以'' \ '' 等符号实现拆分

怎么实现以'' \\ '' 等符号实现拆分

怎么实现按照多个分隔符划分

String[] result = str.split(regex:"=|&");

 如何实现多次拆分

字符串截取

如何实现字符串截取(包括普通截取、局部截取)

局部截取是也是左闭右开的

如何实现去除字符串的左右两边的空格

intern方法

一下打印结果及其原因是什么

char[] ch = new char[]{'a','b','c'};
String s1 = new String(ch);


String s1 = "abc";
System.out.println(s1 == s2);


//打印结果为 false

一下打印结果是什么,为什么

char[] ch = new char[]{'a','b','c'};
String s1 = new String(ch);

s1.intern();

String s1 = "abc";
System.out.println(s1 == s2);


//打印结果为 true

 intern(手动入池)方法的作用

如何打印字符串对象的地址

字符串的不可变性

字符串的不可变性是因为什么

finnal 修饰 array 代表什么,array[0] 可以被改变吗

字符串的拼接是否创建了新对象

如:

String s = "hello";
s += "world";

StringBuilder 与 StringBuffer

怎么利用 stringBuilder.append 进行拼接

stringBuilder.append("abc").append("de");是合理的

stringBuilder.reverse();功能

string 与 stringBuilder 的方法形成了互补功能

stringBuffer 和 stringBuilder 有相同的功能

stringBuffer 比 stringBuilder 更安全,但是花费的时间更多

怎么把 StringBuffer 与 StringBuilder 类型转换成 String 类型

怎么把 String 类型 转换成  StringBuffer 与 StringBuilder 类型

练习题

有多种解法(不仅可以用到 String 知识,还可以用双指针,还有 Character 相关的方法)

https://leetcode.cn/problems/first-unique-character-in-a-string/

题解 | 字符串最后一个单词的长度_牛客网

125. 验证回文串 - 力扣(LeetCode)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值