网站首页 > 基础教程 正文
字符串是程序类最常用的变量,字符串使用String作为类型描述
public static void main(String[] args) {
String zfc = "我是一个中文字符串";
System.out.println(zfc);
}
其实字符串的核心是一个基本类型里的char[]数字,我们通过点击String查看源码可以发现。
所以我们也可以获得字符串长度
public static void main(String[] args) {
String zfc = "我是一个中文字符串";
System.out.println(zfc);
System.out.println(zfc.length());
}
通过上面的源代码我们发现字符串的核心就是char数组,所以我们就可以对字符串做很多操作,我们先拿常用的举例子:
public static void main(String[] args) {
String zfc = "abcdefg";
//判断是否以某字符串开头
if(zfc.startsWith("abc")){
System.out.println("zfc以abc开头");
}
//判断是否以某字符串开头
if(zfc.startsWith("cde",2)){
System.out.println("zfc偏移2个字符以cde开头");
}
//判断是否以某字符串结尾
if(zfc.endsWith("efg")){
System.out.println("zfc以efg结尾");
}
//判断字符串是否是指定字符串,建议使用Strings工具栏里的方法
if("abcdefg".equals(zfc)){
System.out.println("zfc是abcdefg");
}
//获得字符串的二进制数组
System.out.println(zfc.getBytes());
//判断字符串是否包含子字符串
if(zfc.contains("abc")){
System.out.println("zfc里面包含子字符串abc");
}
//判断是否包含序列里的字符串
StringBuilder sb = new StringBuilder("abc");
if(zfc.contentEquals(sb)){
System.out.println("zfc里包含sb里面的子字符串");
}
//通过正则表达式匹配字符
if (zfc.matches("abc.*")){
System.out.println("正则匹配到了abc");
}
//分割字符串
String[] array = zfc.split("");
List<String> list = Arrays.asList(array);
list.stream().forEach(e->{
System.out.println("数组元素"+e);
});
//字符串连接,也可以使用+号表示
System.out.println(zfc.concat("hijklmn"));
//查看子字符串子在字符串首次出现的位置,如果未找到返回-1
System.out.println(zfc.indexOf("c"));
//字符串替换
System.out.println(zfc.replace("abc","xyz"));
//截取字符串
System.out.println(zfc.substring(2));
}
字符串连接
由于字符串是char数组形式,所以我们不建议使用concat和"+"这种形式,使用StringBuffer和StringBuilder是一个比较好的方式
public static void main(String[] args) {
String zfc = "abc";
//StringBuffer是线程安全的,StringBuilder是线程不安全的
//StringBuilder由于不加锁理论上速度要比StringBuffer快
StringBuilder sb1 = new StringBuilder(zfc);
sb1.append("def");
System.out.println(sb1.toString());
?
StringBuffer sb2 = new StringBuffer();
sb2.append(zfc);
sb2.append("def");
System.out.println(sb2.toString());
}
字符串格式化
public static void main(String[] args) {
//%d是整数
//%f是浮点数
//%s是字符串
//%n是换行
//%05d 0代表用0补全,5代表是使用5个占位符
String zfc = String.format("整数格式化:%d,浮点数格式化:%f,使用占位符的浮点数格式化:%05d,字符串格式化:%s",1,1.2,3,"hello world");
System.out.println(zfc);
//System.out.printf 主要用户控制台输出
System.out.printf("整数格式化:%d,浮点数格式化:%f,使用占位符的浮点数格式化:%05d,字符串格式化:%s%n",1,1.2,3,"hello world");
}
猜你喜欢
- 2024-11-08 你居然只知道蓝绿发布?今天教你全链路灰度
- 2024-11-08 redis 分布式锁的 5个坑,真是又大又深
- 2024-11-08 Blazor OIDC 单点登录授权实例7 - Blazor hybird app 端授权
- 2024-11-08 Spring Boot利用filter实现xss防御
- 2024-11-08 Spring连环CVE-2015-5211和CVE-2020-5421漏洞升级教程
- 2024-11-08 如何进行权限系统设计,一文吃透 如何设计一个权限系统
- 2024-11-08 基于Spring Boot的注解驱动式公众号极速开发框架FastBootWeixin
- 2024-11-08 教育平台项目前端:项目前后端接口联调,项目上线部署发布
- 2024-11-08 HTTP通讯框架选型HttpClient/OkHttp
- 2024-11-08 微信公众号自动回复功能开发 微信公众号平台自动回复功能
- 最近发表
- 标签列表
-
- gitpush (61)
- pythonif (68)
- location.href (57)
- tail-f (57)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- css3动画 (57)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- c++time_t (58)
- phpcookie (58)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)