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

黑马程序员_StringBuffer,包装类

--------------------ASP.Net+Android+IOS开发、.Net培训、期待与您交流! --------------------


1. StringBuffer

1.概述

StringBuffer是一个容器,是字符串的缓冲区,线程安全序列

2.特点

长度可以变换,可以操作多种类型数组

2.增加和插入

1.在尾部插入数组,append(inta),此方法是子字符串的尾部插入的数据,有很多重载方法,此方法返回的是StringBuffer对象,还是本身对象

2.在字符串的指定位置插入数据,用insert(int a),此方法也有很多重载的方法,此方法返回的是StringBuffer对象,还是本身对象

3.StringBuffer bu=new StringBuffer(“abc”);

bu.insert(bu.length,”def”);和bu.append(“def”);是一样的。

public class StringBufferDemo {
  public static void main(String [] agrs){
    StringBuffer  bu=new StringBuffer();
    bu.append("abc").append(123).append(true);//在尾部连续添加
    System.out.println("bu="+bu);
    bu.insert(3, "xx");//在3的位置插入"xx",就是在"abc"后面
    System.out.println("bu="+bu);
  }
}
结果:
bu=abc123true
bu=abcxx123true


3. 一般操作

1.获取subString();

   public void getChars(intsrcBegin,intsrcEnd,char[]dst,
     intdstBegin)将字符串指定范围的字符串方法指定字节数组的范围内。
    2替换replay()
    3.删除 delete(start,end) deleteCharAt(int index)

public class StringBufferDemo {
  public static void main(String [] agrs){
    StringBuffer  bu=new StringBuffer();
    bu.append("abc").append(123).append(true);//在尾部连续添加
    System.out.println("bu="+bu);
    char []cs=new char[5];
    bu.getChars(0, 4, cs, 1);//将bu中充0~4,包含0不包含4的字符方法字节数组中从1开始存放
    for(char c:cs)
      System.out.print(c+" ");
    bu.deleteCharAt(2);//将第三个字符删除
    System.out.println("bu="+bu);
    bu.delete(0, bu.length());//清空字符串
    System.out.println("bu="+bu);
   
  }
}
 
 


4. StringBuilder


1.5版本之后才有的。线程不同步,不安全,但是能提高效率。可变的字符序列。简化书写,提高安全性用法和StringBuffer一样,其中也会有一个差异的。

5. 包装类

1. 概述

包装类就是把基本数据类型封装成了包和对象,这样就可以使用对象来操作了。

byte-----Byteint-----Integer

short-----Shortbyte-----Byte

double-----Double float---Float

char ---Characterboolean---Boolean

作用,一般就是用于数据类型和字符串之间的转换,基本数据类型转换成字符串和字符串转换成基本数据类型

public class BaoZhuang {
  public static void main(String[] args) {
    String s1="123";
    int a=Integer.parseInt(s1);//将字符串转换成整形
       
    String s2=a+"abc";//将整形转换成字符串
    System.out.println("s1="+s1);
    System.out.println("a="+a);
    System.out.println("s2="+s2);
 
  }
}
结果:
s1=123
a=123
s2=123abc
 


2. 进制转换

public class BaoZhuang {
  public static void main(String[] args) {
 
    System.out.println("10转换成二进制:" + Integer.toBinaryString(10));
    System.out.println("10转换成八进制:" + Integer.toOctalString(10));
    System.out.println("10转换成十六进制:" + Integer.toHexString(10));
 
    System.out.println("110转换成十进制:" + Integer.parseInt("110", 2));
    System.out.println("076转换成十进制:" + Integer.parseInt("076", 8));
    System.out.println("3c转换成十进制:" + Integer.parseInt("3c", 16));
  }
}
 
结果:
10转换成二进制:1010
10转换成八进制:12
10转换成十六进制:a
110转换成十进制:6
076转换成十进制:62
3c转换成十进制:60


3.整形和Integer之间的转换。

 Integer in=new Integer(“123”);
Int num=in.intValue();
Int n=Integer.parseInt(“123”);
 
6. 装箱和拆箱
   
  public class Text {
  public static void main(String[] args) {
    //JDK1.5新特性
    Integer n=3;//自动装箱,n是一个对象,而3是int类型,此时3会自动转换成Integer类型,这是自动装箱
    n=n+2;//x是对象,2是基本数据类型,因为对象没有加法操作,所以
          //n会自动的转换成in类型,然后和2想加,会把结果x+2自动的转换成Integer(装箱)
   
    Integer x=127;
    Integer x1=127;
    System.out.println(x==x1);//true
    System.out.println(x.equals(x1));//true
    Integer y1=128;
    Integer y2=128;
    System.out.println(y1==y2);//false
    System.out.println(y1.equals(y2));//true
   
    /*在1.5新特性中,只要是在byte类型的范围 -128~127之间,他们都存在,不会在开辟新的空间,任何数据都相等
     * 超过这个范围,那么他们的地址就不相等了*/
  }
}
结果:
true
true
false
true
 

在1.5新特性中,只要是在byte类型的范围 -128~127之间,他们都存在,不会在开辟新的空间,任何数据都相等,超过这个范围,那么他们的地址就不相等了


--------------------ASP.Net+Android+IOS开发、.Net培训、期待与您交流! --------------------


相关文章:

  • 【Android病毒分析报告】 - ZooTiger “集恶意推广、隐私窃取、恶意吸费于一体”...
  • windows下如何用wireshark抓本地回路抓包
  • 知道版本对于出0day后批量攻击dedecms有非常大的帮助,先判断版本再选择相应exp,效率大增...
  • 如何让Windows Server 2008服务器支持被动模式
  • 如何诊断crs 安装时 root.sh 脚本执行错误
  • 站长
  • webshell 匿名用户(入侵者)
  • 中国象棋程序的设计与实现–楚汉棋兵(高级版)(源码)
  • 简单排序
  • ios开发之再谈设计模式
  • windows下搭建apache+php+mysql
  • CSS3之元素阴影box-shadow
  • VMware Ubuntu12.04虚拟机安装VMware Tools 使用share folders共享目录
  • Oracle技术支持是如何分析数据库性能问题的
  • 民生银行与阿里巴巴牵手了
  • php的引用
  • java中的hashCode
  • js作用域和this的理解
  • unity如何实现一个固定宽度的orthagraphic相机
  • 创建一个Struts2项目maven 方式
  • 从零开始的无人驾驶 1
  • 工作中总结前端开发流程--vue项目
  • 汉诺塔算法
  • 入门级的git使用指北
  • 你对linux中grep命令知道多少?
  • 带你开发类似Pokemon Go的AR游戏
  • 关于Kubernetes Dashboard漏洞CVE-2018-18264的修复公告
  • 支付宝花15年解决的这个问题,顶得上做出十个支付宝 ...
  • ​云纳万物 · 数皆有言|2021 七牛云战略发布会启幕,邀您赴约
  • # Pytorch 中可以直接调用的Loss Functions总结:
  • (16)Reactor的测试——响应式Spring的道法术器
  • (4)STL算法之比较
  • (ZT)薛涌:谈贫说富
  • (板子)A* astar算法,AcWing第k短路+八数码 带注释
  • (附源码)计算机毕业设计SSM基于健身房管理系统
  • (四)c52学习之旅-流水LED灯
  • (一)ClickHouse 中的 `MaterializedMySQL` 数据库引擎的使用方法、设置、特性和限制。
  • (已更新)关于Visual Studio 2019安装时VS installer无法下载文件,进度条为0,显示网络有问题的解决办法
  • (转)Android学习系列(31)--App自动化之使用Ant编译项目多渠道打包
  • .NET 2.0中新增的一些TryGet,TryParse等方法
  • .NET CF命令行调试器MDbg入门(三) 进程控制
  • .NET Compact Framework 3.5 支持 WCF 的子集
  • .net oracle 连接超时_Mysql连接数据库异常汇总【必收藏】
  • .Net Remoting(分离服务程序实现) - Part.3
  • .NET 动态调用WebService + WSE + UsernameToken
  • .Net下使用 Geb.Video.FFMPEG 操作视频文件
  • .NET应用架构设计:原则、模式与实践 目录预览
  • @test注解_Spring 自定义注解你了解过吗?
  • [ JavaScript ] JSON方法
  • []Telit UC864E 拨号上网
  • [Angular] 笔记 21:@ViewChild
  • [C++基础]-初识模板
  • [CareerCup] 12.3 Test Move Method in a Chess Game 测试象棋游戏中的移动方法
  • [hadoop读书笔记] 第十五章 sqoop1.4.6小实验 - 将mysq数据导入HBASE
  • [jobdu]不用加减乘除做加法