java中String字符串
一、定义String字符串
String字符串和char字符不同,char使用单引号,只能表示一个字符,字符串就是一段文本。String是个类。这个类使用final修饰,所以这个类是不可以继承扩充和修改它的方法的。String类又特别常用,所以在对String对象进行初始化时,它可以不像其它对象一样,必须使用new关键字构造对象。Java提供了一种简化的特殊语法。
使用String对象存储字符串:
String s = "有志者事竟成";
当然我们也还是可以像以前使用new关键字的。
String s = new String("有志者事竟成");
二、String字符串的常用方法。
String类位于java.lang包中,java会默认的导入java.lang包,所以我们使用java.lang包的类时,不需要显示的import类,String类具有丰富的方法,其中比较常用的有:
-
计算字符串的长度
-
连接字符串
-
比较字符串
-
提取字符串
-
替换字符串
1、计算字符串的长度比较简单。代码如下:
String email = "abc@tom.com "; System.out.println(email.length()); System.out.println(email.trim().length()); String abc="你好"; System.out.println(abc.length());
第一个输出是:13。
第二个输出是:11。
第三个输出是:2。
因为空格也算是字符串的长度,如果你不想计算前后的空格,也也可以使用trim()方法把前后的空格去了。在计算长度。第三个输出为2,可见java对中文的处理和英文也是一样计算的。并不存在一个中文等于两个英文符号的长度。
2、连接字符串。
连接字符串有两种方法:方法1:使用“+”。方法2:使用String类的concat()方法。代码如下:
System.out.println(email+"abc");
System.out.println(email.concat("abc"));
上面两个代码的输出都是一样的:
abc@tom.com abc
abc@tom.com abc
3、比较字符串
字符串的比较方法有很多,如比较两个字符串是否相等,比较后返回值是个布尔值。
String email2="cc@tom.com"; if(email.equals(email2)){ System.out.println("相等"); }else{ System.out.println("不相等"); }
结果是不相等。
字符串的比较是提取每一个字符逐个比较的,如下图所示
而且这种比较是区分大小写的。所以
String str1 = "java"; String str2 = "Java"; System.out.println(str1.equals(str2));
返回为false,如果你想不区分大小写的比较,那么你可以使用不区分大小写的比较方法或者把字符转为为大写(也就可以小写)后再比较。
System.out.println(str1.equalsIgnoreCase(str2));
System.out.println(str1.toLowerCase().equals(str2.toLowerCase()));
System.out.println(str1.toUpperCase().equals(str2.toUpperCase()));
我们还可以判断字符串是否已某个字符串结尾或者开头
System.out.println(email.startsWith("abc"));
System.out.println(email.endsWith("com"));
4、提取字符串
要提取字符串,我们首先得学会如何查询字符串。
注意下标也是从0开始的。
System.out.println(email.indexOf("a"));//从零开始,所以这里是0 System.out.println(email.indexOf("c"));//这个是2,从左到右找,返回第一个找到的。 System.out.println(email.indexOf("zz"));//找不到返回是-1 System.out.println(email.lastIndexOf("c"));//这个是8,从右到左找,返回第一个找到的。 下面是截取字符串
System.out.println(email.substring(3));//从第4个(包括第四个)开始截取到最后 System.out.println(email.substring(3, 5));
indexOf方法和substring方法经常一起使用,比如我们要截取@之后的所有字符串,我们可以结合这个两个。
System.out.println(email.substring(email.indexOf("@")+1));
5、替换字符串
例如我们可以把所有的字符串c换成字符串z
System.out.println(email.replace("c", "z"));
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下