String
String 字符串常量,StringBuffer 字符串变量 ,StringBuilder 字符串变量
String为什么是不可变的?
1.Sring类在定义时候声明为final类型。
2.String类全局变量都定义为private final类型,表明对象一旦初始化,属性值就无法改变。
String设计成不可变有什么好处?
1.线程安全
2.符合字符串常量池的设计
3.确保hashCode的唯一性。hashMap是基于Hashing原理,由数组,链表,红黑树组成。hashMap是以key的hashcode为存储地址,地址不变好,不然如何查找可变的地址。不可变String对象的hashcode是唯一的,所以适用hashmap中的key。
String类的常用方法:
1.获取字符串的长度 int length()
String s1="core Java";
System.out.println(s1.length()); //获取字符串的长度
2 截取一个字符 char charAt()
String s1="core Java";
System.out.println(s1.charAt(1));
3.查找一个指定的字符串是否存在,返回的是字符串的位置,如果不存在,则返回-1
String s1="core Java";
int index = s1.indexOf("J");
System.out.println(index);
4.将字符串里面的小写字母变成大写字母
String s1="core Java";
String s3 = s1.toUpperCase();
System.out.println(s3);
5.将字符串里面的大写字母变成小写字母
String s1="core Java";
String s4 = s1.toLowerCase();
System.out.println(s4);
6.去掉字符串左右空格
String s1=" core Java ";
String trim = s1.trim();
System.out.println(trim);
7.新字符替换旧字符
String str = "hello,world,你,好";
String replace = str.replace(",","-");
System.out.println(replace);
8.截取字符串
String str = "hello,world,你,好"; // 截取0-4位置的字符串,包括0,不包括4
String substring = str.substring(0, 4);
System.out.println(substring);
9.忽略大小写的比较两个字符串的值是否一模一样,返回布尔值。
System.out.println(s1.equalsIgnoreCase(s2));//比较两个字符串(忽略大小写)
分类:
Java基础遇到的问题
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了