String类的常用方法及面试题
-
String是什么?
-
String代表的字符串 表示的字符串的类型
- String是不可变的
-
String类的常用方法
String a = "hello";
//得到索引对应的字母
System.out.println(a.charAt(3));
//判断是否包含
System.out.println(a.contains("v"));
//判断以xxx结束
System.out.println(a.endsWith("h"));
//判断以xxx开始
System.out.println(a.startsWith("s"));
//判断两个字符串内容是否相等 不区分大小写
System.out.println(a.equals("asdfgH"));
//判断两个字符串内容是否相等 忽略大小写
System.out.println(a.indexOf("d"));
//判断字符串是否为空
System.out.println(a.isEmpty());
//最后一次出现的位置
System.out.println(a.lastIndexOf("d"));
//长度
System.out.println(a.length());
//替换
ystem.out.println(a.replace("h", "g"));
//分割字符串
String b="hhh,vvv,ccc,bbb,nnn";
String[] sub=b.split(",");
for(int i=0;i<sub.length;i++) {
System.out.println(sub[i]);
}
//截取字符串 包前不包后
System.out.println(a.substring(2,5));
//转换字符数组
char[] aes=a.toCharArray();
//转小写
System.out.println(a.toLowerCase());
//转大写
System.out.println(a.toUpperCase());
//去除空格 只能去前后空格
System.out.println(a.trim());
//把其他类型转换成String
String bbbS= String.valueOf(5);
-
String的内存问题
-
String定义的字符串为一个常量,一旦被赋值,不可被改变
-
-
重点:
-
- 字符串如果是变量相加,先开空间,再拼接
-
- 字符串如果是常量相加,先拼接,然后再常量池找,如果有就直接返回,没有再创建
-
StringBuffer和StringBuilder
- 可变字符串
-
- 二者的区别:前者是线程安全的可变字符串,后者线程不安全
-
常见方法:
- 添加
- append
- insert
- 删除
- deletecharAt
- delete
- 替换
- replace
- 反转
- reverse
- 添加
-
面试题
1、说说 String、StringBuffer和StringBuilder他们的区别
- String内容不可变,后两者可变
- StringBuffer是线程同步的,数据安全,效率低
- StringBuilder线程不同步,数据不安全,效率高
2、StringBuffer判断是否是回文
String s="abcdcba";
StringBuilder sb=new StringBuilder(s);
String aaa=sb.reverse().toString();
int bbb=aaa.compareTo(s); //若相等则输出0
if (bbb==0){
System.out.println("是");
}else
System.out.println("不是");
3、下面的代码将创建几个字符串对象。
String s1 = new String(“Hello”);
String s2 = new String(“Hello”);
答案是 2个对象.
4、写一个方法来判断一个String是否是回文
String bbb="1234321";
int i;
for(i=0;i<bbb.length()/2;i++) {
if (bbb.charAt(i)==bbb.charAt(bbb.length()-1-i)) {
}else {
break;
}
}
if (i==a.length()/2) {
System.out.println("是");
}else {
System.out.println("不是");
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!