网站首页 > java教程 正文
字符串是程序类最常用的变量,字符串使用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");
}
- 上一篇: 【Java编程】String类的创建和操作
- 下一篇: 迅速了解-Java网络编程
猜你喜欢
- 2024-11-27 【Java编程】String类的创建和操作
- 2024-11-27 Java源码系列-Integer源码
- 2024-11-27 JAVA技术分享:单号的生成
- 2024-11-27 LeetCode每日一题,最长回文子串
- 2024-11-27 java-常用加解密算法-Base64和UrlBase64
- 2024-11-27 你不可不会的几种移动零的方法
- 2024-11-27 LeetCode每日一题,整数转罗马数字
- 2024-11-27 JAVA进阶知识练习题(下)
- 2024-11-27 「教3妹学算法-每日3题(1)」字符串中第二大的数字
- 2024-11-27 Java优雅的保留两位小数
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)