Java中String、StringBuffer及包装类

java基础:Object,String,StringBuilder,StringBuffer,时间类和日期类以及包装类 前言 这里介绍的是一些基础,比较容易理解,包含了字符串工具类(String,StringBuffer,StringBuilder,char[],用来表示字符串的) 正文 Object类 是所有类的根类 方法 toString(): 1)Object类中的toString打印格式为全限定名@hashCode。 注:全限定名=包名+类名,包名与类名使用点号连接,用来... 阅读详情

目录

String

  • 字符串是一个特殊的对象
  • 字符串一旦初始化就不可变
  • 数据会被存在字符串常量池中

public final class String
extends Object
implements Serializable, Comparable, CharSequence
String类代表字符串。
Java程序中的所有字符串文字(例如”abc” )都被实现为此类的实例。
字符串不变; 它们的值在创建后不能被更改。
字符串缓冲区支持可变字符串。
因为String对象是不可变的,它们可以被共享。 例如:

String str = "abc";

相当于:

char data[] = {'a', 'b', 'c'};
String str = new String(data);

—— 引用于jdk1.8 api中描述

class _string{
    public static void main(String[] args) throws Exception{
        String str1 = "Hello World!";

        String str2 = new String(str1);
        sop(str1 == str2);  
        //false str2有两个对象的引用 new "Hello World!"
        String str3 = "Hello"+" "+"World!";
        sop(str1 == str3);  
        //true
        String str4 = "Hello" + new String(" World!");
        sop(str1 == str4);  
        //false 
        sop(str1.equals(str2)&&str1.equals(str4));  
        //true

        //一.查找 str1 = "Hello World!"; 
        sop(str1.length());     
        //12 获取长度
        sop(str1.charAt(6));    
        //W index=6的字符 角标从0开始
        int index_first_o = str1.indexOf('o');
        sop(str1.indexOf('o')); 
        //4 查找 o 的索引
        sop(str1.indexOf('o',index_first_o+1)); 
        //7 从指定的索引开始
        sop(str1.lastIndexOf('o')); 
        //7 最后一次出现的字符串中的索引

        //二.判断 str1 = "Hello World!";
        String str5 = "Hello";
        sop(str5.isEmpty());
        //false 判断length()是否为 0
        sop("".isEmpty());
        //true
        sop(str5.startsWith("He"));
        //true 判断以He开头?
        sop(str5.endsWith("lo"));
        //true 判断以lo结尾?
        sop(str1.contains(str5));
        //true 字符串str1中是否包含一个子串str5
        sop(str1.indexOf(str5));
        //true -1表示不存在 返回str5在str1中出现的索引
        sop(str5.equalsIgnoreCase("hello"));
        //true 忽略大小写的比较

        //三.转换
        sop(new String(str1.toCharArray()));
        //Hello World! 先转换为字符数组 再转为字符串
        sop(new String(str1.getBytes()));
        //Hello World! 先转换为字节数组 再转为字符串
        sop(new String(str1.getBytes(),"UTF-8"));
        //Hello World! 先转换为字节数组 再以utf-8解码转为字符串
        sop(new String().valueOf(str1.toCharArray()));
        sop(new String().valueOf(str1.getBytes()));
        //若是不能转换则返回原类型及数据
        sop(str1.valueOf(3.14159));
        //valueOf 可以将基本类型、char[] 、Object转换为String类型

        //四.替换
        sop(str1.replace(" ","-"));
        //将str1中的空格替换为-
        sop(str1.replace(" ","\n"));
        //将str1中的空格替换为换行符

        //五.切割
        sopArray(str1.split(" "));
        //以“ ”空格进行分割成String数组 Hello  World! 
        sopArray(str1.split(" [A-Z]"));
        //以正则匹配 分割成 Hello  orld! 

        //六.获取子串
        sop(str2.substring(3));
        //lo World! 从角标为3开始取子串
        sop(str1.substring(3,10));
        //lo Worl 从角标为3开始 10 结束开始取子串 

        //七.转换、去空格、比较
        sop(str1.toUpperCase());
        //HELLO WORLD! 转为大写
        sop(str1.toLowerCase());
        //hello world! 转为小写
        sop("  Hello World!  ".trim());
        //hello world! 去掉两边的空格
        sop(str1.compareTo(str2));
        //0 尊重ASCII码值排序进行比较 0则为相同 正数则为str1>str2
    }

    public static void sop(Object obj){
        System.out.println(obj);
    }

    public static void sopArray(String[] strArray){
        for (int i = 0 ; i < strArray.length ; i++) {
            System.out.println(strArray[i]);
        }
    }
}

String之常量池小结

StringBuffer

  • 是一个长度可变化的容器
  • 字符串缓冲区
  • 当需要数据长度可变化、需直接操作多个数据类型、最终通过toString变成字符串时即可使用

public final class StringBuffer
extends Object
implements Serializable, CharSequence
线程安全,可变的字符序列。
字符串缓冲区就像一个String ,但可以修改。
在任何时间点,它包含一些特定的字符序列,但可以通过某些方法调用来更改序列的长度和内容。
字符串缓冲区可以安全地被多个线程使用。
这些方法在必要时进行同步,以便任何特定实例上的所有操作都按照与所涉及的各个线程所执行的方法调用顺序一致的顺序发生。
StringBuffer的主要StringBuffer是append和insert方法,它们被重载以便接受任何类型的数据。
每个都有效地将给定的数据转换为字符串,然后将该字符串的字符附加或插入到字符串缓冲区。
append方法总是在缓冲区的末尾添加这些字符; insert方法将insert添加到指定点。
—— 引用于jdk1.8 api中描述

/**
* stringBuffer 和 stringBuilder 都是长度可变化,可直接操作多个数据
* 类型,最终可通过toString变成字符串的
* stringBuffer 用于同步中
* stringBuilder 不支持同步 但是效率有所提高 所以推荐用这个 
*/
class _stringBuffer{
    public static void main(String[] args){
        StringBuffer sbf = new StringBuffer();
        sbf.append("1");
        sbf.append(1).append("123").append(1.2).append('a');
        print(sbf.toString());//转为String类型
        //111231.2a
        print(sbf.capacity());
        //16
        print(sbf.delete(1,4));
        //131.2a
        print(sbf.deleteCharAt(1));
        //11.2a 删除的是容器中的数据 不变的是容器 变的是数据
        print(sbf.charAt(2));
        //.
        print(sbf.indexOf("1"));
        //0
        print(sbf.lastIndexOf("1"));
        //1
        print(sbf.length());
        //5
        print(sbf.substring(2));
        //.2a
        print(sbf.replace(1,4,"hello"));
        //1helloa
        print(sbf.insert(2,true));
        //1htrueelloa
        sbf.setCharAt(2,'H');
        print(sbf.reverse());
        //aolleeurHh1
    }

    public static void print(Object obj){
        System.out.println(obj);
    }
}

包装类

  • Java有两大数据类型
  • 一:内置数据类型:8种基本数据类型(4个整数:byte,int,short,long、2个浮点:float,double、1个字符:char、1个布尔boolean)
  • 二:引用数据类型:对象(String)和数组(默认值都为null)
  • 每一个基本数据类型有一个包装类所以共有8个包装类(Byte,Integer,Short,Long,Float,Double,Character,Boolean)
  • 包装类主要作用于基本数据类型和字符串之间的转换
  • 基本数据类型+”” OR 包装类.toString(数据)
class IntegerDemo{
    public static void main(String[] args){

        Integer i1 = new Integer(127);
        Integer i2 = new Integer(127);
        print("i1==i2:"+(i1==i2));
        //false 因为每一个new对象都是不同的
        print("i1==i2:"+i1.equals(i2));
        //true
        print(Integer.valueOf(i1)==Integer.valueOf(i2));
        //true 直接指向值Integer对象
        print(Integer.valueOf("128")==Integer.valueOf("128"));
        //false
        //Integer设置-128到127的静态缓存

        print(Integer.toString(123));
        print(Integer.parseInt("120"));
        //str -> Int
        print(Integer.toString(123));
        //str <- Int
        print(new Integer(456).intValue());
        //Integer -> int

    }

    public static void print(Object obj){
        System.out.println(obj);
    }
}

java关于Integer设置-128到127的静态缓存

基于OpenCV的驾驶疲劳检测与预警系统设计 PERCLOS(Percentage of Eye Closure)是一种基于眼睑闭合程度的疲劳度量指标。在基于OpenCV的驾驶疲劳检测与预警系统设计中,PERCLOS可以用于检测驾驶员的眼睑闭合程度,以判断其是否疲劳。该函数用于检测视频流中人脸的疲劳程度。具体地,该函数通过检测人脸的眼睛和嘴巴的状态来评估人脸的疲劳程度。眼睛状态是通过计算眼睛的长宽比(eyear)来判断,如果长宽比小于某个阈值,则认为眼睛闭合,表示人处于疲劳状态。 阅读详情

相关推荐

模电实验室:手把手教你调试共射放大电路静态工作点(避免波形失真)

本文详细介绍了共射放大电路静态工作点的调试方法,帮助避免波形失真问题。从实验准备、电路搭建到静态工作点测量,提供了实用的电阻选值策略和常见波形失真解决方案,适合电子相关专业学生和硬件工程师参考学习。

weixin_42531128的博客 375

【java基础】【StringBuffer类使用】

java.lang.StringBufferjava.lang包下的,所以使用时不用导包。StringBuffer类是字符串缓冲区,用类此集合的方法操作字符串。StringBuffer是线程安全的。构造方法1、public StringBuffer()构造一个其中不带字符的字符串缓冲区,其初始容量为 16 个字符。2、public StringBuffer(CharSequence seq)构造一...

超级大白 680

5分钟搞定!用FunASR在本地快速部署达摩院Paraformer语音识别模型(附常见问题解决)

本文详细介绍了如何在本地快速部署阿里达摩院开源的Paraformer语音识别模型。通过FunASR工具包,用户可在5分钟内完成环境配置、模型下载与基础识别,并掌握批量处理、性能调优及构建API服务等进阶技巧。文章重点解析了Paraformer的非自回归架构带来的速度优势,并提供了音频格式转换、依赖冲突、显存不足等常见问题的实战解决方案,助力开发者实现高效、离线的语音转写应用。

p1q2r的博客 705

JavaSE学习总结(九)常用类(中)StringBuffer类StringBuilder与StringBuffer的区别二分查找Arrays类包装类Integer类自动装箱与自动拆箱

JavaSE学习总结(九)常用类(中)/StringBuffer类/StringBuilder与StringBuffer的区别/二分查找/Arrays类/包装类/Integer类/自动装箱与自动拆箱

long3359的博客 226

PSF(点扩散函数)与去卷积算法消除图像模糊

本文旨在总结图像处理中使用去卷积的传统方法来进行图像去模糊的相关知识。

m0_53607446的博客 6013

Fiori Elements 的 Adapting the UI: Analytical List Page 全解析与实战

摘要:本文详细介绍了如何通过SAP Fiori elements的UI Adaptation功能对Analytical List Page(ALP)进行细粒度适配。重点讲解了页头过滤区、图表区域、表格区域等关键组件的可配置属性,包括过滤区折叠/固定、图表类型限制、表格滚动阈值等实用功能。文章强调这些适配均可通过可视化工具完成,无需修改业务代码,并提供了典型场景的实践清单。适用于SAP Fiori elements for OData V2项目,建议配合SAP Fiori tools的Adaptation E

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 433

string赋值给char数组_String构造方法

package ITHEIMA;/*String类在java.lang包下,所有使用的时候不需要导包。String代表字符串,java程序中得所有字符串文字(例如:“abc”)都被实现为此的实例,也就是说,java程序中所有的双引号字符串,都是String类的对象。字符串的特点:1.字符串不可以变,他们的值创建后不能被更改。2.虽然String的值是不可变的,但是他们可以被共享。3.字符串效果上相...

weixin_35520787的博客 2273

基于YOLOv5的空间目标智能监测系统:航天器与太空碎片识别技术实现

做完这个项目,你会发现自己完整走过了“数据采集→标注→模型训练→功能集成→界面开发”的毕设全流程,这不仅是技术能力的证明,更是对“技术守护宇宙安全”这一理念的实践。答辩时,你可以重点讲这几点:系统解决了航天监测的哪些痛点、YOLOv5在太空目标检测中的性能优势、系统未来能怎么优化(比如对接航天监测网络、实现实时轨道预测)。未来,这个系统还能往“更智能”的方向发展:比如结合轨道计算预测碰撞风险、开发移动端APP让天文爱好者参与太空垃圾上报、在航天任务中实现全自动避障决策……想象空间很大。

m0_64661770的博客 109

Java基础学习第七讲:Java中的String类、常用类及包装类

Java中的String类、常用类及包装类

跟着老高学Java 1066

【WRF-FDDA】观测 Obs nudging 的配置与使用说明(中)

WRF-FDDA

WW、forever的博客 280

50、压电微泵与技术设备驱动的研究分析

本文研究了压电微泵在弹性微通道中的流体流动特性及技术设备驱动的振动行为。通过建立轴对称流固耦合模型,利用FreeFem++进行数值模拟,分析了不同数量压电致动器和频率对微泵流量的影响,发现多个致动器按特定时序压缩可产生净正向流量,并提出了稳态流量的近似解析公式。同时,针对技术设备驱动系统,探讨了周期性负载引起的强迫振动特性,明确了共振条件及影响因素,并比较了主动、被动和优化设计等振动控制策略。最后展望了实验验证、多物理场耦合与智能控制等未来研究方向,为相关设备的优化设计与高效运行提供了理论支持。

convnet3designer的博客 148

【Java】三个特殊类——Object类、包装类、String类

Object类、包装类、String类的内容以及其特有的方法等。

m0_50987960的博客 969

微信公众号 - 最新详细实现H5网页接入微信支付功能,开发移动端、PC端网站集成使用微信支付流程及示例代码,公众号网页利用JS-SDK/JSAPI/H5支付授权唤起微信支付,可脱离微信环境支付或内置浏

微信公众号,微信支付,网页,移动端,h5,扫码支付,二维码付款,手机网页,电脑pc网页生成支付二维码,js-sdk,jsapi,外部浏览器调起微信支付,脱离微信环境,在微信内置浏览器如何进行微信支付,前端H5微信支付,web网站,vue2,vue3,nuxt2,nuxt3,jquery,微信公众号h5支付流程,如何实现,怎么做,回调报错,redirect_uri参数错误,必须部署才能调试吗,怎么不打包发布就能在本机测试,微信H5支付能力,uniapp微信支付,h5页面调起支付,支付没反应,无效,失败,H5页

🏆 前端领域优质创作者 6102

java基础 包装类、String类、StringBuffer、StringBuilder、Math类、Arrays类

java基础 包装类、String类、StringBuffer、StringBuilder、Math类、Arrays类

温涛的博客 831

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

java 常用类学习-包装类、String、StringBuffer、StringBuilder

Object、Math、Random、File、包装类、Date、String、String Buffer、StringBuilder。

火箭 的博客 224

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

014Java基础之常用类:包装类、String、StringBuffer、StringBuilder

1、包装类 1.1、包装类的分类 (1)针对八种基本数据类型相应的引用类型—包装类 (2)有了类的特点,就可以调用类中的方法。 1.2、包装类和基本数据的转换 JDK5之前采用手动装箱和手动拆箱方式,JDK5之后底层帮我们实现了自动装箱和拆箱。装箱:基本数据类型到包装类;拆箱:包装类到基本数据类型 package com.francis.wrapper; /** * @author Francis * @create 2021-07-17 10:16 */ public class Inte

qq_44835120的博客 410

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

java笔记(String、StringBuffer、包装类)

StringBuffer 和 StringBuilder底层都是char数组,只不过该数组可变长,所以当我们需要进行频繁的字符串拼接时,可以使用StringBuffer 和 StringBuilder为了对基本数据类型进行更多的操作,最方便的方式就是将其封装成对象,因为在对象描述中就可以定义更多的属性和行为对该基本数据类型进行更多操作。我们不需要自己去对基本数据类型进行封装,JDK已经为我们封装好了装箱就是自动将基本数据类型转换为包装器类型拆箱就是自动将包装器类型装转换为基本数据类型。

m0_73783104的博客 1055

JAVA笔记(十六):包装类、String类、StringBuffer、StringBuider

重点:String、StringBuffer、StringBuilder的区别和使用场景

欢迎~ 408

Java包装类、String类、StringBuffer类和StringBulid类方法

类名:包装类集合(八种基本数据类型的包装类)Byte、Short、Integer、Long、Float、Double类(父类Number)、Boolean、Character类(父类Object) 父类Number方法(了解) 方法名 作用 byte byteValue() 以 byte 形式返回指定的数值 abstract double doubleValue() 以 double 形式返回指定的数值 abstract float floatValue() 以 fl

mining7k7k的博客 157

java——String、StringBuffer、StringBuilder、包装类、单双引号

String:   String是一个特殊的类,被定义为final类型,为字符串常量,同样的字符串在常量池中不能重复。   但是由于使用关键字new创建新的字符串,java会在对中分配新的空间,这样即使字符串相同返回的引用也不相同。 public class Exp { public static void main(String[] args) { ...

dengyunhui1210的博客 381

Java-四种元注解、异常、包装类Wrapper、String、StringBuffer、StringBuilder

1 注解和四种元注解(作用不大,看源码用)2 异常 2.1 异常介绍 2.2 编译时异常和常见的运行时异常 2.3 异常处理 2.4 自定义异常 2.5 throw VS throws 3 包装类 3.1包装类概述 3.2拆箱和装箱 3.3 包装类型和String类型相互转换 3.4 Integer和Character类的常用方法 3.5 Integer练习题 4 String类 4.1 String类结构刨析 4.2 String对象的特性 4.3 String常用方法

weixin_57208934的博客 1158

java包装类和String类(StringBuffer和StringBuilder)

Java为纯面向对象语言(万物皆对象),而8种基本数据类型不能创建对象,破坏了Java为纯面向对象语言的特征,所以Java又给这8种基本数据类型分别匹配了对应的类,这种叫做包装里/封装类。String是一个不可变的类, 即一旦一个String对象被创建, 包含在这个对象中的字符序列是不可改变的, 直至该对象被销毁。如果想存储基本数据类型,就可以把基本数据类型转换为对应的包装类对象。如果字符序列满了,会重新改变缓存区的大小,以容纳更多的字符序列。集合(类似数组的容器),但是集合只能存引用数据类型,

zuochangping的博客 133

Java笔记023-包装类、String类、字符串的特性、String类、StringBuffer类、StringBuilder类

Java笔记023-包装类、String类、字符串的特性、String类、StringBuffer类、StringBuilder类

qq_59621600的博客 712

Java初学笔记16-【包装类、String、StringBuffer、StringBuild类】

Java初学笔记16

爱吃凉拌辣芒果的博客 666

Java基础之String类--String类、StringBuffer类、包装类

String类概述: class StringDemo { public static void main(String[] args) { /* String s1 = "abc";//s1是一个类类型变量, "abc"是一个对象。 //字符串最大特点:一旦被初始化就不可以被改变。 String s2 = new String("abc"); //s

枫叶的专栏 842

JAVA的高级特性——实用类(包装类、String类、StringBuffer类、Math类)

枚举 枚举是由一组固定的长量组成。 枚举:一一列举出来 1.关键字:enum 2. 里面可以写汉字,字母,中间使用逗号隔开。末尾不加分号也不错但是不推荐 public enum Test { 男,女; } 包装类 包装类:是一个基本类型的对象,具有属性和方法。 为什么要学习它呢? 因为在泛型的声明过程中,是不能将基本数据类型作为泛型的约定,但是包装类就可以。 包装类把基本数据类型转换为对象 每个基本类型在java.lang包中都有一个相应的包装类 包装类有何作用: 1.提供了一系列

CSMCZM的博客 337
上一篇: JAVA中线程、锁使用及其基本方法
下一篇: Java集合框架篇Collection—List&Set
虾米馅煎包
博客等级 码龄10年 2粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值