当前位置: 首页 > news >正文

java基础学习 day34(StringBuilder,链式编程)

1. StringBuilder概述

  • StringBuilder可以看作是一个容器,创建之后里面的内容是可变的
  • 作用:提高字符串的操作效率

例如:
String s1 = “aaa”;
String s2 = “bbb”;
String s3 = “ccc”;

String str = s1 + s2 + s3;
//在每一个“+”号操作完,都会创建一个新的字符串,s1+s2 会创建一个,再 +s3 又创建一个,这会创建很多无用的字符串,大大浪费计算机的内存,同时也非常影响程序的运行效率。

  • 注意点:
    因为StringBuilder是java已经写好的类,且java在底层对它做了一些处理,在打印StringBuilder对象的时候,打印的不是他的地址值而是他的属性值,即内容。

2. StringBuilder的构造方法

  • public StringBuilder()
    //创建一个空白的StringBuilder对象,不包含任何内容

StringBuilder sb = new StringBuilder();
// “”

  • public StringBuilder(String str)
    //根据字符串的内容,来创建StringBuilder对象

StringBuilder sb = new StringBuilder(“abc”);
// “abc”

3. StringBuilder的常用方法

  • public StringBuilder append(任意类型)
    //在StringBuilder对象的内容的末尾添加数据,并返回添加后的对象本身,可以接收,也可以不接收

StringBuilder sb = new StringBuilder(“abc”);
sb.append(1);
// “abc1”
StringBuilder sb2 = sb.append(true);
// “abc1true”

  • public StringBuilder reverse()
    //反转StringBuilder对象的内容,并返回反转后的对象本身

StringBuilder sb = new StringBuilder(“abc”);
sb.reverse();
// “cba”

  • public int length()
    //返回长度(StringBuilder对象的内容中字符出现的个数)

StringBuilder sb = new StringBuilder(“abc”);
sb.length();
// 3

  • public String toString()
    //通过toString()就可以实现把StringBuilder转换为String,并返回转换后的String字符串
    //这样就可以对转换后的String字符串,使用String类的方法了

StringBuilder sb = new StringBuilder();
sb.append(“aaa”);
sb.append(“bbb”);
sb.append(“ccc”);

System.out.println(sb);
// “aaabbbccc”

String str = sb.toString();
System.out.println(str);
// “aaabbbccc”

4. 链式编程

  • 当我们在调用一个带返回值的方法时,不需要用变量接收他的结果,可以继续调用其他方法

String sb = “abc”;
int len = sb.substring(1).replace(“A”, “Q”).length() ;
System.out.println( len ) ;
// 2

相关文章:

  • 支持数位板的远程软件,实现远程使用 Wacom 数位板
  • ASP.NET Core+Element+SQL Server开发校园图书管理系统(一)
  • AppScan自定义扫描策略,扫描针对性漏洞
  • 【博客590】iptables raw表的特殊作用
  • 第8章 NVS
  • 【Android笔记67】Android之动态申请访问权限(工具类封装)
  • Pytorch自定义数据集模型训练流程
  • QEMU零知识学习3 —— QEMU配置
  • k8s之挂载本地磁盘到POD中
  • Spring国际化详解,Spring国家化实例及源码详解
  • 解决Windows Server远程断开后自动锁屏问题
  • 系分 - 案例分析 - 系统设计
  • 基于有向图的邻接矩阵计算其割点、割边、压缩图,并用networkx可视化绘制
  • 【进阶】Spring更简单的读取和存储对象
  • C++内存分配方法new与placement new使用方法详解
  • [ACTF2020 新生赛]BackupFile
  • 自动化测试 | 这些常用测试平台,你们公司在用的是哪些呢?
  • Android大厂面试100题,涵盖测试技术、环境搭建、人力资源
  • 【QT5 实现“上图下文”,带图标的按键样式-toolbutton-学习笔记-记录-基础样例】实现方式之一
  • Android 9.0系统源码_SystemUI(八)PhoneWindow更新状态栏和导航栏背景颜色的流程解析