Java学习笔记20(String类应用、StringBuffer类、StringBuilder类)
1.获取指定字符串中大小写和数字的个数:
package demo;public class StringTest {public static void main(String[] args) {getCount("IamHandsome666");}public static void getCount(String str) {int upper = 0;int lower = 0;int digit = 0;for (int i = 0; i < str.length(); i++) {char c = str.charAt(i);if (c >= 65 && c <= 90) {upper++;} else if (c >= 97 && c <= 122) {lower++;} else if (c >= 48 && c <= 57) {digit++;}}System.out.println(upper);//2System.out.println(lower);//9System.out.println(digit);//3 } }
2.将一个字符串中第一个字母转成大写,其余字母转成小写并打印
package demo;public class StringTest {public static void main(String[] args) {String string = toConvert("iAMhaNdSoMe");System.out.println(string);//输出:Iamhandsome }public static String toConvert(String str) {String first = str.substring(0,1);String after = str.substring(1);first = first.toUpperCase();after = after.toLowerCase();return first+after;} }
3.从一个长字符串中找小字符串出现的次数:
package demo;public class StringTest {public static void main(String[] args) {System.out.println(getStringCount("Ilikejava,andjavaisthebest,java", "java"));}public static int getStringCount(String str, String key) {int count = 0;int index = 0;while ((index = str.indexOf(key)) != -1) {count++;str = str.substring(index+key.length());}return count;} } //输出:3
String字符串无法改变,会有一些不便之处
所以介绍一个新类
StringBuffer类,字符串缓冲区
出现目的:为了提高字符串操作效率
内部采用了可变数组的方法,类内部定义了数组,这个数组没有final
数组的默认容量是16
关于它的方法,这里用一个示例来理解:
package demo;public class StringBufferDemo {public static void main(String[] args) {append();delete();insert();replace();reverse();toString_();}public static void append(){StringBuffer buffer = new StringBuffer();buffer.append(6);buffer.append("hello");System.out.println(buffer);//6hello }public static void delete(){StringBuffer buffer = new StringBuffer();buffer.append("helloIlikeJava");buffer.delete(1, 2);buffer.deleteCharAt(8);System.out.println(buffer);//hlloIlikJava }public static void insert(){StringBuffer buffer = new StringBuffer();buffer.append("java");buffer.insert(1, "Python");System.out.println(buffer);//jPythonava }public static void replace(){StringBuffer buffer = new StringBuffer();buffer.append("abcdefg");buffer.replace(2, 4, "H");System.out.println(buffer);//abHefg }public static void reverse(){StringBuffer buffer = new StringBuffer();buffer.append("abcdefg");buffer.reverse();System.out.println(buffer);//gfedcba }public static void toString_(){StringBuffer buffer = new StringBuffer();buffer.append("abcdefg");String string = buffer.toString();System.out.println(string);//输出一个String类型的abcdefg,即字符串 } }
StringBuffer类实例:
public class StringBufferTest {public static void main(String[] args) {int[] arr = {4,1,4,56,7,8,76};System.out.println(toString(arr));}/** 目的:* int[] arr = {34,12,89,68};将一个int[]中元素转成字符串 * 格式 [34,12,89,68]*/public static String toString(int[] arr){//创建字符串缓冲区StringBuffer buffer = new StringBuffer();buffer.append("[");//数组遍历for(int i = 0 ; i < arr.length;i++){//判断是不是数组的最后一个元素if(i == arr.length-1){buffer.append(arr[i]).append("]");}else{buffer.append(arr[i]).append(",");}}return buffer.toString();} }
还有一个StringBuilder类,方法和StringBuffer的方法完全相同
区别:
StringBuffer类是一个线程安全的类,StringBuilder类是一个线程不安全的类,不过它更快
线程知识在后边会讲到,
日常开发建议使用StringBuilder类,因为相对速度更快
转载于:https://www.cnblogs.com/xuyiqing/p/8259306.html
Java学习笔记20(String类应用、StringBuffer类、StringBuilder类)相关推荐
- java学习笔记(十)----String类和StringBuffer类
***String类和StringBuffer类 -------------------------- String类对象中的内容一旦被初始化就不能再改变 StringBuffer类用于封装内容可以改 ...
- Java学习笔记20
Objects是Java 7新增的一个工具类,它提供了一些工具方法来操作对象,这些工具方法大多是"空指针"安全的. Objects实现的方法如下: 关于compare(T,T,Co ...
- java学习笔记(六)----对象的类型转换, 匿名内置类
对象的类型转换 -- 子类对象可以自动转换成父类 -- 父类转换成子类必须使用强制转换 -- instanceof操作符可以用它来判一个实例对象是否属于一个类. class A { public ...
- java学习笔记20(Lambda表达式、函数式编程、流式计算、练习)
文章目录 11.3 学习内容 Lambda表达式 Lambda标准格式 格式说明 省略规则 使用前提 函数式接口 预定义的函数式接口 工作内容 任务1 总结&明日计划 11.4 学习内容 流式 ...
- java学习笔记20(Arraylist复习,Collection接口方法,迭代器,增强型for循环)
集合:集合是Java提供的一种容器,可以用来存储多个数据: 集合与数组的区别:集合的长度是可变的,数组的长度是固定的 集合中存储的数据必须是引用类型数据: ArrayList回顾: public cl ...
- 2022年Java学习笔记目录
一.2022年Java任务驱动课程 任务驱动,统摄知识点:2022年Java程序设计讲课笔记 二.2022年Java学习笔记 (一)踏上Java开发之旅 Java学习笔记1.1.1 搭建Java开发环 ...
- java学习笔记6--类的继承、Object类
接着前面的学习: java学习笔记5--类的方法 java学习笔记4--类与对象的基本概念(2) java学习笔记3--类与对象的基本概念(1) java学习笔记2--数据类型.数组 java学习笔记 ...
- java学习笔记7--抽象类与抽象方法
接着前面的学习: java学习笔记6--类的继承.Object类 java学习笔记5--类的方法 java学习笔记4--类与对象的基本概念(2) java学习笔记3--类与对象的基本概念(1) jav ...
- java学习笔记day07 成员变量与局部变量、形式参数、匿名对象、封装、private、this、构造方法、类详细讲解、static
java学习笔记day07 1.成员变量和局部变量的区别 定义变量的注意事项 2.形式参数⭐ [P175] 形参是个类名,要的其实是一个对象 3.匿名对象(了解即可) 4.封装 class Stude ...
最新文章
- visibility和display隐藏元素的区别
- 深度解析】Google第二代深度学习引擎TensorFlow开源(CMU邢波独家点评、白皮书全文、视频翻译)
- ADT更新过慢与更新Android SDK过慢
- boost::multi_array模块测试 storage_order-isms
- 03.body_search
- 如何成为一名受欢迎的程序员直播者?
- wamp怎么安装mysql服务器_用wamp的mysq安装pythonmysql
- 利用CloudIDE当做简单linux环境,执行简单python工程任务
- Hibernate 二级缓存的作用
- 《C++ Primer 5th》知识点总结练习题解
- 达摩院发布2021十大科技趋势(附PDF版)
- 几个关于矩阵的定义 奇异值分解 谱分解
- 2020互联网公司中秋礼盒大比拼(22家互联网厂商)
- ALFA深度学习软件金属外观缺陷检测应用
- 美赛数模论文之优缺点写作
- html div 作用,div是什么意思,都有什么作用?
- 计算机u盘被禁用怎么办,笔记本电脑U盘等USB设备被禁用怎么处理
- [5GC]《5G核心网-赋能数字化时代》| 6.4高效的用户面连接机制
- JDBC批量插入sql-踩坑笔记
- 能不能接受五一放一天不调休?专家建议固定法定假期取消调休