String类

C++string类 就像一个家庭中有两个孩子,但父母只买了一份玩具,两个孩子愿意一块玩,则万事大吉,万一不想分享就你争我夺,玩具损坏。可以采用深拷贝解决浅拷贝问题,即:每个对象都有一份独立的资源,不要和其他对象共享。父母给每个孩子都买一份玩具,各自玩各自的就不会有问题了可以采用深拷贝解决浅拷贝问题,即:每个对象都有一份独立的资源,不要和其他对象共享,父母给每个孩子都买一份玩具,各自玩各自的就不会有问题了。 阅读详情

1.String字符串的构造

string字符串类型

双击Shift,选择classes,搜素String

字符串是不可变对象,被final修饰

 区别于C语言,JAVA当中字符串没有以\0结尾的说法

String类常用的三种构造方法

public class Test {
    public static void main(String[] args) {
        //1)
        String s1="hello";
        //2)
        String s2=new String("world");
        //3)
        char []array={'h','a','h','a'};
        String s3=new String(array);
        System.out.println(s3);
    }

}

" "双引号括起来的也是String类型对象,string是引用类型

2.String的比较

== 对于引用类型比较的是引用中的地址,内置类型比较的是变量中的值

public class Test {
    public static void main(String[] args) {
        //str1和str2不一样,两个是新new的对象,指向不一样,
        //所存储的地址不一样
        String  str1 =new String("abcde");
        String str2 =new String("abcde");
        System.out.println(str1==str2);
        //判断存储的内容是否一样
        System.out.println(str1.equals(str2));
        System.out.println("================");
        //字符串常量池 (哈希表)?
        //如果常量池已经有的字符串就不会再存取
        String str3="abc";
        String str4="abc";
        System.out.println(str3==str4);
        String str5=str4;
        //str5指向str4所指向的对象,所以一样
        System.out.println(str4==str5);
    }

 

2)  

 前k个字符相等(k为两个长度最小值,相等的长度范围),返回长度差值 

 

 equals返回的是boolean类型,compareTo返回的是int类型,,compareToIgnoreCase与CompareTo比较方式相同,只是忽略字符大小写

3.字符串的查找 

常用的方法

 public static void main(String[] args) {
        String s="hello world";
        //1)返回index位置上字符,不能越界 char charAt(int index)
        System.out.println(s.charAt(2));//l
        //2)返回ch第一次出现的位置,没有返回-1 int indexOf(int ch)
        //int indexOf(int ch,int fromIndex)从fromIndex位置开始找ch第一次出现的位置
        //int index(String str)返回str第一次出现位置
        //int indexOf(String str,int fromIndex)
        System.out.println(s.indexOf('e'));//1
        //3)int lastIndexOf(int ch)从后往前找返回ch第一次出现的位置
        //int lastIndexOf(int ch,int fromIndex)从后往前
        //int lastIndex(String str)
        //int lastIndex(String str,int fromIndex)
        System.out.println(s.lastIndexOf("o"));//7
        //空格会计入字符串的总长度,并且在字符串中都有其对应的下标。
        System.out.println(s.indexOf("o w"));//4


    }

 

4.转化

数值和字符串转化

public static void main(String[] args) {
        //数字转化字符串
        String s1=String.valueOf(1234);
        String s2=String.valueOf(12.34);
        String s3=String.valueOf(true);
        //返回路径(对象)
        String s4=String.valueOf(new Student("小明",8) );
        System.out.println(s1);
        System.out.println(s2);
        System.out.println(s3);
        System.out.println(s4);
        System.out.println("===============");
        //字符串转为数字
        int data1=Integer.parseInt("1314");
        double data2=Double.parseDouble("13.14");
        System.out.println(data1);
        System.out.println(data2);

    }

 大小写转化也不是在原来的字符串上改变,是产生一个新字符串,只转换字母

public static void main(String[] args) {
        //大小写转化
        String s1="HELLO";
        String s2="hello";
        //小写
        System.out.println(s1.toLowerCase());
        //大写
        System.out.println(s2.toUpperCase());
        //字符串转为数组 toCharArray
        String s3="world";
        char[] ch=s3.toCharArray();
        for (int i = 0; i < ch.length; i++) {
            System.out.println(ch[i]);
            //数组转为字符串构造方法
        }
        //格式化 format
        String s=String.format("$%d-%c-%d",2014,'e',6);
        System.out.println(s);
    }

String trim()方法去掉字符串的左右空格

5.字符串替换,拆分,截取

替换

字符串是不可变对象,替换不是修改当前字符串,而是产生一个新的字符串

replace

 public static void main(String[] args) {
        String str="aaccbgdioaacien";
        //替换所有内容
        System.out.println(str.replaceAll("aa","zz"));
        // //替换首个内容
        String s=str.replaceFirst("c","!");
        System.out.println(s);
    }

拆分

public static void main(String[] args) {
        String s="All roads lead to Rome";
        String[] result=s.split(" ");
//        for(String str:result){
//            System.out.println(str);
//        }
        for (int i = 0; i < result.length; i++) {
            System.out.println(result[i]);
        }
        String[] result2=s.split("",3);
        for(String str:result2){
           System.out.println(str);
       }
    }

 按字符".","+","*"..等拆分要加上转义字符"\\"

 截取

substring

 public static void main(String[] args) {
        //String subString (int beginIndex)从什么为直截取
       // String subString (int beginIndex,int endIndex)左闭右开的范围截取
        String s="helloworld";
        System.out.println(s.substring(5));
        System.out.println(s.substring(3));
        System.out.println(s.substring(0,4));

    }

tj

6. 借助StringBuilder和StringBuffer修改字符串

package demo7;
//StringBuilder和StringBuffer不能直接赋值,要通过new
public class Test {
    public static void main(String[] args) {
        //String变为StringBuilder
        StringBuilder stringbuilder=new StringBuilder("abc");
        System.out.println(stringbuilder);
        //在append过程中只有一个对象,不产生新对象,添加到它本身
        //拼接产生的是新对象

        stringbuilder.append(1);
        stringbuilder.append("cde");
        System.out.println(stringbuilder);
        //锁 synchronized () 多线程情况下stringbuffer 单线程 stringbuilder
        //将index位置的字符设置成ch
        stringbuilder.setCharAt(1,'z');
        System.out.println(stringbuilder);
        //插入
        stringbuilder.insert(2,"!!");
        System.out.println(stringbuilder);

        //StringBuffer和StringBuilder大部分功能相似,内容可以修改
        //StringBuilder变为String调用toString方法


    }
}

常见的十大量化投资策略(附源码) 量化投资策略是利用量化的方法,进行金融市场的分析、判断和交易的策略、算法的总称。著名的量化投资策略有以下10种(注:策略源码模板不能直接用于实盘交易,仅供探讨交流) 01、海龟交易策略 海龟交易策略是一套非常完整的趋势跟随型的自动化交易策略。这个复杂的策略在入场条件、仓位控制、资金管理、止损止盈等各个环节,都进行了详细的设计,这基本上可以作为复杂交易策略设计和开发的模板。 海龟交易策略源码:https://www.myquant.cn/docs/python_strategyies/110 0. 阅读详情

相关推荐

从工业夹爪到Shadow Hand:一文看懂机器人灵巧手的硬件进化史(附避坑指南)

本文详细解析了机器人灵巧手从工业夹爪到Shadow Hand的硬件进化历程,涵盖刚性夹持器、自适应夹持器到多指灵巧手的技术突破。文章还提供了选购指南与技术避坑策略,帮助读者根据操作复杂度和环境结构化程度选择最适合的解决方案,适用于制造业、医疗和服务业等多个领域。

weixin_29074409的博客 484

如何获取定义在res中的String数组

1 首先 新建android工程,在res/values  建立attrs.xml 2 编辑attrs.xml :               北京          上海          广州          深圳         3 在定义的类中使用String 数组的方法:  Reso

qq_34425670的博客 1470

逆向实战:从x-mini签名到RPC调用,Frida动态分析小红书加密协议

本文通过实战案例,详细拆解了小红书App的加密协议逆向分析过程。从识别x-mini签名等关键参数入手,结合静态分析与Frida动态Hook技术,追踪到核心的RPC调用入口,并最终封装成可独立调用的RPC函数,为安全研究和协议理解提供了完整的技术路径。

moss5的博客 1033

深刻研究String str = new String("res"); 和 String str = "res";的区别

预备知识:         1. new对象的过程;         2. 堆和常量池; 1》, 先说 String str = "res"的创建过程 ;         (过程: 加载类  -- &gt; 初始化类 --&gt; 创建对象  )         创建一个对象str,将str指向常量池中的res   2》,String str = new String("res");...

Faith的博客 1146

交流异步机VVVF变频控制simulink/matlab仿真分析

VVVF,是Variable Voltage and Variable Frequency的缩写, 意为:可变电压、可变频率,也就是变频调速系统。 VVVF控制的逆变器连接电机,通过同时改变频率和电压,达到磁通恒定(可以用反电势/频率近似表征)和控制电机转速(和频率成正比)的目的,所以多应用在变频器中,属于工业自动化领域。

Ezekiel_Mok的博客 4210

智能车小白也能懂:手把手教你用LM358和工字电感搭建电磁循迹模块(附PCB设计避坑)

本文详细介绍了如何利用LM358运放和工字电感搭建智能车电磁循迹模块,从电感选型、电路设计到PCB布局和焊接调试,提供全流程实战指南。特别针对新手常见问题,如信号干扰、电路饱和等,给出具体解决方案和参数配置,帮助智能车比赛爱好者快速掌握电磁循迹技术。

weixin_30307921的博客 403

C++【string类,模拟实现string类】

就像一个家庭中有两个孩子,但父母只买了一份玩具,两个孩子愿意一块玩,则万事大吉,万一 不想分享就你争我夺,玩具损坏。可以采用深拷贝解决浅拷贝问题,即:每个对象都有一份独立的资源,不要和其他对象共享。父 母给每个孩子都买一份玩具,各自玩各自的就不会有问题了。

qq_67578580的博客 3698

从SAS接口到InfiniBand:一张图看懂数据中心硬件‘黑话’(SFF-8643/8644、QSFP112、NDR/HDR/EDR)

本文深入解析数据中心硬件术语,从SAS接口标准(SFF-8643/8644)到速率标识(NDR/HDR/EDR),帮助工程师快速理解关键性能指标。特别对比了PCIe卡规格(HHHL/FHHL)和光模块选择(QSFP112/OSFP),并探讨InfiniBand在高性能网络中的优势,为硬件选型提供实用指南。

weixin_32103009的博客 432

【C++】string类

C++ string类解析摘要 本文全面解析C++ string类,重点包括: string类解决了C语言字符串的4大痛点:安全性问题、内存管理复杂、功能有限、不符合面向对象思想 string类基础用法和C++11新特性(auto关键字和范围for循环) 详细介绍了5类核心接口: 构造函数(空字符串、C字符串构造等) 容量操作(size()/length()、resize()等) 元素访问和遍历(下标操作、迭代器、范围for) 通过代码示例演示string类的实际应用,包括字符串处理和安全操作 string

凤年徐的博客 3477

物联网通信中NB-IoT、Cat.1、LTE-M该如何选择?

首先我们要确定我们产品的关键需求,例如:我们的设备是否对数据传输速率有较高的要求,有较高要求我们就需要选择较高传输速率的Cat.1来开发我们的产品。同时关于产品性能方面,我们对功耗、延迟、可靠性也会有所要求,例如我们的产品为移动端产品,不方便布线以及安装电源,那我们就会采用电池供电的方式,所以在选择时可以优先考虑低功耗产品,最终结合其他需求选择出合适的协议。首先,我们需求的产品是不同的,我们需要根据产品需求或项目需求来进行选择,NB-IoT、Cat.1、Cat.M都有属于自己的优势。

a1809032425的博客 1216

热力学仿真软件:Fluent_(8).材料属性设置

在 Fluent 中,材料属性主要包括密度、比热容、导热系数、黏度等物理性质。这些属性在不同的仿真场景中有着不同的作用,例如在流体仿真中,密度和黏度是必不可少的;在传热仿真中,导热系数和比热容是主要考虑的因素。如果所需的材料不在材料库中,或者需要对现有材料进行修改,用户可以自定义材料属性。在主菜单中选择Materials。点击打开材料编辑器。在材料编辑器中,点击Create按钮,输入新的材料名称。选择材料类型(如FluidSolid等)。在属性栏中填写所需的材料属性。

kkchenjj的博客 1494

string类

string类

m0_69323023的博客 549

硬件工程师的破局之路:为何你才是考取软考高级架构师的“天选之子”?

硬件工程师如何转型系统架构师:独特优势与实战路径 文章揭示了硬件工程师在考取系统架构设计师证书时的独特优势。作者指出,硬件工程师的全局思维、接口设计能力和可靠性经验正是系统架构的核心要素。通过将硬件经验升维为架构思维(从引脚到接口、从单板到系统、从实现到权衡),硬件背景反而成为竞争优势。文章建议通过知识补全、建立架构决策日志和术语转换练习来备考,并强调硬件工程师在软硬协同时代的独特价值——既能统领硬件设计,又能为软件搭建最佳舞台。文末鼓励硬件工程师以更高视野看待职业发展,将系统架构师认证视为水到渠成的职业升

云轩阁 534

从认识String类,到走进String类的世界

作为一个常用的数据类型,跟随小编一同进入String的学习吧,领略String的一些用法。

2301_80350265学无止尽5的博客 3529

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

【C++驾轻就熟】string类以及string类的模拟实现

C语言中,字符串是以'\0'结尾的一些字符的集合,为了操作方便,C标准库中提供了一些str系列的库函数, 但是这些库函数与字符串是分离开的,不太符合OOP的思想,而且底层空间需要用户自己管理,稍不留神可能还会越界访问。 sring类的文档介绍总结:在使用string类时,必须包含#include头文件以及using namespace std; 2. string类对象的容量操作 注意:注意: 上面已经对string类进行了简单的介绍,大家只要能够正常使用即可。在面试中,面试官总喜欢让学

2201_75537851的博客 1182

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Java中String类的使用

今天来复习复习Java中String类的使用。Java字符串String从表面上看,字符串就是双引号之间的数据,例如"Hello World",在Java中,字符串其实就是一个String类的对象,可以这样来定义一个字符串:String str1="Hello World";//第一种方法 String str2=new String("Hello World");//第二种方法这两种都可以创建字...

xkfanhua的博客 9266

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

String类详细介绍

size计算字符串长度。

xuecde的博客 5004

String类和String类常用方法

在C语言中要表示字符串只能使用字符数组或者字符指针,可以使用标准库提供的字符串系列函数完成大部分操作,但是这种将数据和操作数据方法分离开的方式不符合面相对象的思想,而字符串应用又非常广泛,因此Java语言专门提供了String类。而且在面试题中也频繁用到处理字符串的题目。String、StringBuff和StringBulider之间的区别等。

Lizhihao_的博客 1203

C++ string 类(标准库中的string类)

本文介绍了C++中string类的基本概念和常用接口。string类是标准模板库(STL)提供的可变长度字符串处理工具,基于basic_string模板类实现。文章详细讲解了string的常见构造函数、容量操作(size/resize/capacity等)、修改操作(append/push_back等)、访问遍历方式(迭代器/下标/范围for循环)以及非成员函数(运算符重载/getline等)。同时对比了VS和g++编译器下string内部结构的差异:VS采用小字符串优化(SSO),而g++使用写时拷贝技术

aramae的博客 1500

【String类】String类的深入浅出理解

文章目录一、概述二、构造方法三、其他方法四、String的特点五、String与其他类型的转换5.1 字节数组转化5.2 字符数组转化5.3 基本类型转字符串六、面试题中遇到的 一、概述 字符串:就是由多个字符组成的一串数据。也可以看成是一个字符数组。 通过API,我们可以知道 字符串字面值“abc”也可以看成一个字符串对象。 字符串是常量,一旦被赋值,就不能改变。 二、构造方法 空...

Java 2542
上一篇: 抽象类和接口
下一篇: JAVA(集合框架 泛型 复杂度)
奈葵
博客等级 码龄4年 245粉丝 49原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值