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类)相关推荐

  1. java学习笔记(十)----String类和StringBuffer类

    ***String类和StringBuffer类 -------------------------- String类对象中的内容一旦被初始化就不能再改变 StringBuffer类用于封装内容可以改 ...

  2. Java学习笔记20

    Objects是Java 7新增的一个工具类,它提供了一些工具方法来操作对象,这些工具方法大多是"空指针"安全的. Objects实现的方法如下: 关于compare(T,T,Co ...

  3. java学习笔记(六)----对象的类型转换, 匿名内置类

    对象的类型转换 --  子类对象可以自动转换成父类 --  父类转换成子类必须使用强制转换 --  instanceof操作符可以用它来判一个实例对象是否属于一个类. class A { public ...

  4. java学习笔记20(Lambda表达式、函数式编程、流式计算、练习)

    文章目录 11.3 学习内容 Lambda表达式 Lambda标准格式 格式说明 省略规则 使用前提 函数式接口 预定义的函数式接口 工作内容 任务1 总结&明日计划 11.4 学习内容 流式 ...

  5. java学习笔记20(Arraylist复习,Collection接口方法,迭代器,增强型for循环)

    集合:集合是Java提供的一种容器,可以用来存储多个数据: 集合与数组的区别:集合的长度是可变的,数组的长度是固定的 集合中存储的数据必须是引用类型数据: ArrayList回顾: public cl ...

  6. 2022年Java学习笔记目录

    一.2022年Java任务驱动课程 任务驱动,统摄知识点:2022年Java程序设计讲课笔记 二.2022年Java学习笔记 (一)踏上Java开发之旅 Java学习笔记1.1.1 搭建Java开发环 ...

  7. java学习笔记6--类的继承、Object类

    接着前面的学习: java学习笔记5--类的方法 java学习笔记4--类与对象的基本概念(2) java学习笔记3--类与对象的基本概念(1) java学习笔记2--数据类型.数组 java学习笔记 ...

  8. java学习笔记7--抽象类与抽象方法

    接着前面的学习: java学习笔记6--类的继承.Object类 java学习笔记5--类的方法 java学习笔记4--类与对象的基本概念(2) java学习笔记3--类与对象的基本概念(1) jav ...

  9. java学习笔记day07 成员变量与局部变量、形式参数、匿名对象、封装、private、this、构造方法、类详细讲解、static

    java学习笔记day07 1.成员变量和局部变量的区别 定义变量的注意事项 2.形式参数⭐ [P175] 形参是个类名,要的其实是一个对象 3.匿名对象(了解即可) 4.封装 class Stude ...

最新文章

  1. visibility和display隐藏元素的区别
  2. 深度解析】Google第二代深度学习引擎TensorFlow开源(CMU邢波独家点评、白皮书全文、视频翻译)
  3. ADT更新过慢与更新Android SDK过慢
  4. boost::multi_array模块测试 storage_order-isms
  5. 03.body_search
  6. 如何成为一名受欢迎的程序员直播者?
  7. wamp怎么安装mysql服务器_用wamp的mysq安装pythonmysql
  8. 利用CloudIDE当做简单linux环境,执行简单python工程任务
  9. Hibernate 二级缓存的作用
  10. 《C++ Primer 5th》知识点总结练习题解
  11. 达摩院发布2021十大科技趋势(附PDF版)
  12. 几个关于矩阵的定义 奇异值分解 谱分解
  13. 2020互联网公司中秋礼盒大比拼(22家互联网厂商)
  14. ALFA深度学习软件金属外观缺陷检测应用
  15. 美赛数模论文之优缺点写作
  16. html div 作用,div是什么意思,都有什么作用?
  17. 计算机u盘被禁用怎么办,笔记本电脑U盘等USB设备被禁用怎么处理
  18. [5GC]《5G核心网-赋能数字化时代》| 6.4高效的用户面连接机制
  19. JDBC批量插入sql-踩坑笔记
  20. 能不能接受五一放一天不调休?专家建议固定法定假期取消调休

热门文章

  1. 史蒂夫 乔布斯(Steve Jobs)在斯坦福大学2005年毕业典礼上的演讲
  2. SQL 死锁分析(转贴)
  3. Mr.J--JS学习(事件处理函数包装)
  4. redis学习(二) redis数据结构介绍以及常用命令
  5. Laravel用post提交表单常见的两个错误
  6. 【转】win7 32位安装oracle10g步骤
  7. 使用DOM生成XML文件(转)
  8. 内置模块/核心模块 (自带的) --fs 文件系统
  9. CSS3 元素基础知识
  10. 用css实现模仿火狐社区的一个提示框