Java基础学习第三天-String类中常见的方法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java基础学习第三天-String类中常见的方法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含6586字,纯文字阅读大概需要10分钟。
内容图文
一、String字符串的创建
//1.先声明,再创建
String[] array01;
array01=new String[10];
//2.声明+创建
String[] array02=new String[20];
//3.声明+自定义初始化
char[] array03= {'甲','乙','丙','丁'};
System.out.println(Arrays.toString(array03));
这里引入一个概念:字符串常量池
JVM为了提升性能和减少内存的开销,避免字符串的重复创建,维护了一块特殊的内存空间,用于保存字符串。
优点:避免了相同字符串的创建,节省了空间,省去了创建相同字符串的时间,提高了性能。
方式1:在字符串常量池中创建
String str1="just do it";
String str2="just do it";
由于字符串池中已经有"just do it",因此当在定义str02时,str02不会再重新创建新的字符串,而是会指向字符池中所对应的地址
方式2:在堆中开辟空间,创建并保存字符串
String str3=new String("just do it");
这种方法不仅在字符串池中创建了"just do it",还在堆中开辟了一块内存空间,用于存储该字符串在字符串池中的地址
方式3:将字符数组,转换成字符串
char[] chs= {'A','B','C','D','E'};
String str4=new String(chs);
System.out.println(str4);
二、String类的常见方法
1.charAt(下标位置)
- 功能:返回改下标所对应的字符
String str1="ABCD";
System.out.println(str1.charAt(0));
2.toCharArray()
- 功能:返回该字符串中的字符数组
String str2="天天爱学习";
char[] chs=str2.toCharArray();
System.out.println(chs[1]);
3.equals()方法进行比较,equalsIgnoreCase()比较时忽略大小写
- == : 运算符,基本数据类型进行值的比较,引用数据类型进行内存地址的比较
- equals() : 方法,基本数据类型没有方法,引用数据类型(String)进行值(字符串内容)的比较
// 方式1:在"字符串常量池"中创建
String str1 = "just do IT";
String str2 = "just do IT";
String str3 = "just do it";
// 方式2:在“堆区”中创建
String strx = new String("just do it");
String stry = new String("just do it");
// == 比较内存地址
System.out.println(str1 == str2); //true
System.out.println(str1 == str3); //false
System.out.println(str3 == strx); //false
System.out.println(strx == stry); //false
// equals 比较字符串内容
System.out.println(str3.equals(strx));//true
}
}
4.toUpperCase()-转化成大写
toLowerCase()-转化成小写
String code = "twGdhbTZHy";
// 转换成大写
String strUpper = code.toUpperCase();
System.out.println(strUpper);
String strLower = code.toLowerCase();
System.out.println(strLower);
5.String.valueOf()
- 将指定类型转换为字符串类型
// int => String
String strInt = String.valueOf(100);
System.out.println(strInt);
// double => String
String strDouble = String.valueOf(12.3);
System.out.println(strDouble);
// boolean => String
String strBoolean = String.valueOf(true);
System.out.println(strBoolean);
6.String.format()格式化字符串
(%d代表整型,%f代表浮点型,%s代表字符串)
// 格式化输出(代表整数,%f代表浮点数,%s代表字符串)
System.out.printf("%d+%d=%d\n", num1, num2, sum);
// 格式化字符串
String str = String.format("%d+%d=%d", num1, num2, sum);
System.out.println(str);
7.split(指定字符串)
- 功能:按照指定字符串进行切割,返回字符串数组
//案例1
String sourceStr = "北京#-上海#-河北#-西安#-武汉";
String[] resultArray = sourceStr.split("#-");
for (String city : resultArray) {
System.out.println(city);
}
// 案例2
String ip = "192.168.90.4";
// 切割字符串如果是特殊符号(正则表达式),需加入\\进行转义
String[] ipArray = ip.split("\\.");
for(String strNum : ipArray) {
System.out.println(strNum);
}
// 案例3
sourceStr = "北京#$上海#$河北#$西安#$武汉";
// 切割字符串如果是特殊符号(正则表达式),需加入\\进行转义
String[] cityArray = sourceStr.split("#\\$");
for(String cityName : cityArray) {
System.out.println(cityName);
}
}
8.compareTo()
-
功能:比较两个字符串之间的大小
-
比较规则:先比较两个字符串对应字符 ASCII码(英文)或Unicode码(中文)的"差",
如果比较的所有字符一致,再比较字符串的长度“差”。 传入:需要比较的另外一个字符串 -
返回: 正数:字符串1 > 字符串 2 零:字符串1 = 字符串2 负数:字符串1 < 字符串2
String str1 ="天";
String str2 ="地";
System.out.println(str1.compareTo(str2));
9.contains(子字符串)
-
功能:判断字符串是否包含指定子字符串
-
返回结果:true:代表包含,false:代表不包含
String str1 = "ABABABASOSOASB";
System.out.println(str1.contains("soso"));
10.startsWith(子字符串)
-
功能:判断字符串是否以指定子字符串"开头"
-
返回结果:true:代表是,false:代表不是
String url = "ftp://www.baidu.com";
System.out.println(url.startsWith("http"));
- endsWith(子字符串)
- 功能:判断字符串是否以指定子字符串"结尾"
- 返回结果: true:代表是,false:代表不是
String fileName = "weixin.docx";
System.out.println(fileName.endsWith(".png"));
12.indexOf(子字符串)
-
功能:查找指定子字符串
-
返回结果:如果找到,则返回子字符串位置;如果没找到返回负数
String data1 = "印度:{nowConfirm:0,confirmAdd:2,dead:0,heal:2,zero:0}";
int pos1 = data1.indexOf(":"); // 从下标0开始查找
System.out.println(pos1); // 4
int pos2 = data1.indexOf(":", 5); // 从下标5开始查找
System.out.println(pos2); // 18
- substring()
-
功能:截取子字符串
-
返回:截取后的子字符串
// 从指定开始位置,截取至字符串的尾部(截取后缀名)
String suffix = fileName.substring(beginPos);
System.out.printf("%s的后缀名是%s\n", fileName, suffix);
// 案例2:截取文件名
String name = fileName.substring(0, beginPos);
System.out.printf("%s的文件名是%s\n", fileName, name);
14.replace()
- 功能:将指定子字符串替换
- 返回:替换后的新字符串
String content = "where there is a will there is a way,I will go where you will go,there you!finish this job";
content = content.replace(",", " ").replace("!", " ");
System.out.println(content);
15.trim()
-
功能:去除左右空格
-
返回:去除空格后的新字符串
src = " <img src=\"https://img2.doubanio.com/view/photo/s_ratio_poster/public/p2627788612.webp\" alt=\"沐浴之王\" rel=\"nofollow\" class=\"\" />";
System.out.println("使用前:"+src);
src = src.trim(); //去除字符串的左右空格
System.out.println("使用后:"+src);
- String.join()
-
功能:将字符串数组,按照指定字符串进行连接
-
返回:连接后的新字符串
String[] array = { "AA", "BB", "CC", "DD", "EE", "FF" };
// 方式1
// String.join()
// 功能:将字符串数组,按照指定字符串进行连接
// 返回:连接后的新字符串
String result01 = String.join("#", array);
System.out.println(result01);
// 方式2
String result02 = "";
for (int i = 0, len = array.length; i < len; i++) {
result02 += array[i];
if (i != len - 1) {
result02 += "#";
}
}
System.out.println(result02);
17.StringJoiner
- 功能:进行字符串的连接
// 以前
String[] array = { "AE", "AD", "AB" };
String result01 = String.join(",", array);
System.out.println("{" + result01 + "}");
// 使用StringJoiner
// StringJoiner joiner = new StringJoiner(","); // 仅使用分隔符
StringJoiner joiner = new StringJoiner(",","{","}"); //分隔符,前缀,后缀
for(String s : array) {
joiner.add(s); //添加字符串
}
String result02 = joiner.toString();
System.out.println(result02);
18.intern()
- 如果字符常量池中已经包含一个等于此 String对象的字符串则返回常量池中字
符串的引用(内存地址),否则将新的字符串放入常量池并返回新字符串的引 用(内存地址)
以上就是String常见的一些方法,如有错误或者补充欢迎评论区讨论
内容总结
以上是互联网集市为您收集整理的Java基础学习第三天-String类中常见的方法全部内容,希望文章能够帮你解决Java基础学习第三天-String类中常见的方法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。