字符串的方法,字符串的练习,StringBuffer
2022/2/3 23:12:49
本文主要是介绍字符串的方法,字符串的练习,StringBuffer,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
获取方法:
int length() 获取字符串的长度
char charAt(int index) 获取特定位置的字符(角度越界)
int indexOf(String str) 查找子串第一次出现的索引值,如果子串没有出现在字符串中,那么则返回-1表示。
int lstlndexOf(String str) 查找子串最后一次出现的索引值,如果子串没有出现在字符串中那么则返回-1表示
代码演示:
package aa.aa; public class Demo06 { public static void main(String[] args) { String str = "abc中国按中国"; System.out.println("字符串的字符个数:"+str.length()); System.out.println("根据索引值获取对应的字符:"+str.charAt(3)); System.out.println("查找子串第一次出现的索引值:"+str.indexOf("中国")); System.out.println("查找子串最后一次出现的索引值:"+str.lastIndexOf("中国")); } }
运行结果:
判断方法:
boolean endsWith(String str) 是否以指定字符结束
boolean isEmpty() 是否长度为0
boolean contains(charSequence) 是否包含指定序列 应用:搜索
boolean equals(Object anObject) 是否相同
boolean equalslgnore(String anotherString) 忽略大小写是否相等
转换方法:
char[] toCharArray() 将字符串转换为字符数组
byte[] getBytes(); 把字符串装换字节数组
代码演示:
package aa; import java.util.Arrays; public class Demo05 { public static void main(String[] args) { String str = "Demo.java"; System.out.println("是否以指定的字符结束:"+str.endsWith("java")); System.out.println("判断字符串是否为空内容:"+str.isEmpty()); System.out.println("判断字符串是否包含指定的内容:"+str.contains("Demo")); System.out.println("判断两个字符串的内容是否一致:"+"DEMO.JAVA".equals(str)); System.out.println("判断两个字符串的内容是否一致(忽略大小写):"+"DEMO.JAVA".equalsIgnoreCase(str)); //转换的方法 char[] buf = str.toCharArray(); System.out.println("字符串组:"+ Arrays.toString(buf)); byte[] buf2 = str.getBytes(); System.out.println("字节数组:"+Arrays.toString(buf2)); } } 运行结果:
需求1:自己实现trim方法。
代码演示:
public class Demo07 { public static void main(String[] args) { String str = " 传奇 博客 "; System.out.println(myTrinm(str)); } public static String myTrinm(String str){ char[] arr = str.toCharArray(); int startindex = 0; int ecdindex = arr.length-1; while (true){ if (arr[startindex]==' '){ startindex++; }else { break; } } while (true){ if (arr[ecdindex]==' '){ ecdindex--; }else { break; } } return str.substring(startindex,ecdindex+1); } } 运行结果:
需求2: 获取上传文件名 "D:\\20120512\\day12\\Demo1.java"。
代码演示:
public class Demo08 { public static void main(String[] args) { String str = " D:\\20120512\\day12\\Demo1.java"; getFileName(str); } public static void getFileName(String path){ int index = path.lastIndexOf("\\"); String fileName = path.substring(index+1); System.out.println("文件名:"+fileName); } } 运行结果:
需求三:将字符串对象中存储的字符反序。 新中国好
代码演示:
public class Demo08 { public static void main(String[] args) { String str = "新中国好"; System.out.println(reverse(str)); } public static String reverse(String str){ char[] arr = str.toCharArray(); for (int startlndex = 0,ecdlndex = arr.length-1;startlndex<ecdlndex;startlndex++,ecdlndex--){ char temp = arr[startlndex]; arr[startlndex] = arr[ecdlndex]; arr[ecdlndex] = temp; } return new String(arr); } } 运行结果:
字符串的特点:字符串是常量,它们的值在创建之后就不能更改。
字符串的内容一旦发生变化那么马上会创建一个新的对象。
注意:字符串的内容不适宜频繁修改,因为一旦修改马上就会创建一个新的对象。
如果需要频繁修改字符串内容,建议使用字符串缓冲类(StringBuffer)。
StringBuffer其实是一个存储字符的容器。
代码演示:
public class Demo08 { public static void main(String[] args) { String str1 = "hello"; String str2 = str1+"world"; System.out.println("str1与str2是同一个对象吗?"+(str1==str2)); } } 运行结果:
如果需要频繁修改字符串内容,建议使用字符串缓冲类(StringBuffer)。
StringBuffer其实是一个存储字符的容器。
笔试题目:使用StringBuffer无惨的构造函数创建一个对象时,默认的初容量是多少?自动增长多少倍?
StringBuffer 底层是依赖了一个字符数组才能存储字符数据 的,该字符串数组默认 的初始容量是16, 如果字符数组的长度不够使用 死,自动增长1倍。
容器的具备行为:
增加
删除
修改
查看
判断
代码演示:
public class Demo08 { public static void main(String[] args) { StringBuffer sb = new StringBuffer(); sb.append("java"); sb.append("java"); sb.append("java"); sb.append("java"); sb.append("java"); System.out.println(sb); } } 运行结果:
这篇关于字符串的方法,字符串的练习,StringBuffer的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-07如何利用看板工具优化品牌内容创作与审批,确保按时发布?
- 2025-01-07百万架构师第十一课:源码分析:Spring 源码分析:Spring源码分析前篇|JavaGuide
- 2025-01-07质量检测标准严苛,这 6 款办公软件达标了吗?
- 2025-01-07提升品牌活动管理的效率:看板工具助力品牌活动日历的可视化管理
- 2025-01-07宠物商场的精准营销秘籍:揭秘看板软件的力量
- 2025-01-07“30了,资深骑手” | 程序员能有什么好出路?
- 2025-01-07宠物公园的营销秘籍:看板软件如何帮你精准触达目标客户?
- 2025-01-07从任务分解到资源优化:甘特图工具全解析
- 2025-01-07企业升级必备指南:从传统办公软件到SaaS工具的转型攻略
- 2025-01-07一文告诉你IT项目管理如何做到高效