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

Java基础Day-Thirteen

Java字符串

String类

创建String对象的方法
  • 方法一:创建一个字符串对象imooc,名为s1

    String s1="imooc";

  • 方法二:创建一个空字符串对象,名为s2

    String s2=new String();

  • 方法三:创建一个字符串对象imooc,名为s3

    String s3=new String("imooc");

String的常用方法
方法说明
int length()返回当前字符串的长度
int indexOf(int ch)查找ch字符在该字符串中第一次出现的位置
int indexOf(String str)查找str子字符串在该字符串中第一次出现的位置
int lastIndexOf(int ch)查找ch字符在该字符串中最后一次出现的位置
int lastIndexOf(String str)查找str子字符串在该字符串中最后一次出现的位置
String substring(int beginIndex)获取从beginIndex位置开始到结束的子字符串
String substring(int beginIndex,int endIndex)获取从beginIndex位置开始到endIndex位置的子字符串
String trim()返回去除了前后空格的字符串
boolean equals(Object obj)将该字符串与指定对象比较,返回true或false
String toLowerCase()将字符串转换为小写
String toUpperCase()将字符串转换为大写
char charAt(int index)获取字符串中指定位置的字符
String[] split(String regex,int limit)将字符串分割为子字符串,返回字符串数组
byte[] getBytes将该字符串转换为byte数组
        //定义一个字符串String str="Java 编程 基础";String str2=new String("JAVA编程基础,我喜欢java编程");//打印输出字符串的长度System.out.println("字符串的长度是:"+str.length());//取出字符‘程’并输出,chatAt(int index),index从0开始System.out.println(str.charAt(6));//取出子串“编程 基础”并输出System.out.println(str.substring(5));//取出子串“编程”并输出System.out.println(str.substring(5,7));//查找字符‘A’在字符串中第一次出现的位置System.out.println("字符‘A’在字符串中第一次出现的位置:"+str2.indexOf('A'));//查找子串‘编程’在字符串中第一次出现的位置System.out.println("子串‘编程’在字符串中第一次出现的位置:"+str2.indexOf("编程"));//查找字符‘A’在字符串中最后一次出现的位置System.out.println("字符‘A’在字符串中第一次出现的位置:"+str2.lastIndexOf('A'));//查找子串‘编程’在字符串中最后一次出现的位置System.out.println("子串‘编程’在字符串中第一次出现的位置:"+str2.lastIndexOf("编程"));      }
  • 字符串与byte数组间的相互转换

    public static void main(String[] args) throws UnsupportedEncodingException {//字符串和byte数组之间的相互转换//定义一个字符串String str=new String("JAVA 编程 基础");//将字符串转换为byte数组,并打印输出byte[] arrs=str.getBytes("GBK");for(int i=0;i<arrs.length;i++) {System.out.print(arrs[i]+" ");}System.out.println();//将byte数组转换为字符串String str1=new String(arrs,"GBK");System.out.print(str1);}
  • 等于运算符与equals方法的区别

            //==和equals方法的区别//定义三个字符串,内容都是imoocString str1="imooc";String str2="imooc";String str3=new String("imooc");String str4=new String("imooc");System.out.println("str1和str2的内容相同吗?"+(str1.equals(str2)));//trueSystem.out.println("str1和str3的内容相同吗?"+(str1.equals(str3)));//true
    ​System.out.println("str1和str2的地址相同吗?"+(str1==str2));//trueSystem.out.println("str1和str2的地址相同吗?"+(str1==str3));//false
    ​
    • str1和str2指向常量池中的同一个位置

    • str3和str4在内存中是两个不同的存储空间

  • 字符串的不可变性

            // String的不可变性//String对象一旦被创建,则不能修改,是不可变的//所谓的修改其实是创建了新的对象,所指的内存空间不变String s1="imooc";s1="hello,"+s1;//s1不再指向imooc所在的内存空间,而是指向了”hello,imooc“System.out.println("s1="+s1);
    ​String s2=new String("hello,imooc!");System.out.println("子串:"+s2.substring(0, 5));System.out.println("s2="+s2);

StringBuilder类

  • String和StringBuilder的区别:

    String具有不可变性,而StringBuilder不具备

  • 建议:当频繁操作字符串时,使用StringBuilder

  • StringBuilder和StringBuffer

    • 二者基本相似

    • StringBuffer是线程安全的,StringBuilder则没有,所以性能略高

        //定义一个字符串”你好“StringBuilder str=new StringBuilder("你好");//在str后面添加内容,将字符串变成”你好,imooc“
//      str.append(",");
//      str.append("imooc!");
//      System.out.println("str="+str);System.out.println("str="+str.append(',').append("imooc!"));
​//将字符串变成”你好,iMOOC!“//两种方式//1、使用delete方法删除mooc,然后插入MOOCSystem.out.println("替换后:"+str.delete(4, 8).insert(4, "MOOC"));//2、使用replace方法直接替换System.out.println("替换后:"+str.replace(4, 8, "MOOC"));//在字符串”你好,iMOOC“中取出“你好”并输出System.out.println(str.substring(0,2));

相关文章:

Java基础Day-Thirteen

Java字符串 String类 创建String对象的方法 方法一&#xff1a;创建一个字符串对象imooc&#xff0c;名为s1 String s1"imooc"; 方法二&#xff1a;创建一个空字符串对象&#xff0c;名为s2 String s2new String(); 方法三&#xff1a;创建一个字符串对象imooc&a…...

LangChain实际应用

1、LangChain与RAG检索增强生成技术 LangChain是个开源框架&#xff0c;可以将大语言模型与本地数据源相结合&#xff0c;该框架目前以Python或JavaScript包的形式提供&#xff1b; 大语言模型&#xff1a;可以是GPT-4或HuggingFace的模型&#xff1b;本地数据源&#xff1a;…...

【数据结构】哈希/散列表

目录 一、哈希表的概念二、哈希冲突2.1 冲突概念2.2 冲突避免2.2.1 方式一哈希函数设计2.2.2 方式二负载因子调节 2.3 冲突解决2.3.1 闭散列2.3.2 开散列&#xff08;哈希桶&#xff09; 2.4 性能分析 三、实现简单hash桶3.1 内部类与成员变量3.2 插入3.3 获取value值3.4 总代码…...

flutter 项目初建碰到的控制台报错无法启动问题

在第一次运行flutter时&#xff0c;会碰见一直卡在Runing Gradle task assembleDebug的问题。其实出现这个问题的原因有两个。 一&#xff1a;如果你flutter -doctor 检测都很ok&#xff0c;而且环境配置都很正确&#xff0c;那么大概率就是需要多等一会&#xff0c;少则几十分…...

Java字符串深度解析:String的实现、常量池与性能优化

引言 在Java编程中&#xff0c;字符串操作是最常见的任务之一。String 类在 Java 中有着独特的实现和特性&#xff0c;理解其背后的原理对于编写高效、安全的代码至关重要。本文将深入探讨 String 的实现机制、字符串常量池、不可变性的优点&#xff0c;以及 String、StringBu…...

leetcode 2043.简易银行系统

1.题目要求: 示例: 输入&#xff1a; ["Bank", "withdraw", "transfer", "deposit", "transfer", "withdraw"] [[[10, 100, 20, 50, 30]], [3, 10], [5, 1, 20], [5, 20], [3, 4, 15], [10, 50]] 输出&#xff…...

基于SSM(Spring + Spring MVC + MyBatis)框架的文物管理系统

基于SSM&#xff08;Spring Spring MVC MyBatis&#xff09;框架的文物管理系统是一个综合性的Web应用程序&#xff0c;用于管理和保护文物资源。下面我将提供一个详细的案例程序概述&#xff0c;包括主要的功能模块和技术栈介绍。 项目概述 功能需求 用户管理&#xff1a…...

yakit中的规则详细解释

官方文档 序列前置知识之高级配置 | Yak Program Language 本文章多以编写yaml模版的视角来解释 规则一览 匹配器 在编写yaml中会使用到这里两个东西 点击添加会在返回包的右下角出现匹配器 上面有三个过滤器模式&#xff0c;官方解释 丢弃&#xff1a;丢弃模式会在符合匹配…...

[c语言]strcmp函数的使用和模拟实现

1.strcmp函数的使用 int strcmp ( const char * str1, const char * str2 ); 如果 str1 小于 str2&#xff0c;返回一个负值。如果 str1 等于 str2&#xff0c;返回 0。如果 str1 大于 str2&#xff0c;返回一个正值。 实例&#xff1a; #include <stdio.h> #include &…...

如何把子组件的v-model修改数据,进行接收然后定义数据格式,子传父的实现

在 Vue 中&#xff0c;实现子组件通过 v-model 向父组件传递数据并接收后进行格式化&#xff0c;可以按照以下步骤来封装和实现&#xff1a; 步骤 1: 子组件实现 v-model 子组件需要定义一个 props 来接收 v-model 的值&#xff0c;并通过 emit 方法发出更新事件。 <!-- …...

linux dpkg 查看 安装 卸载 .deb

1、安装 sudo dpkg -i google-chrome-stable.deb # 如果您在安装过程中或安装和启动程序后遇到任何依赖项错误&#xff0c; # 您可以使用以下apt 命令使用-f标志解析​​和安装依赖项&#xff0c;该标志告诉程序修复损坏的依赖项。 # -y 表示自动回答“yes”&#xff0c;在安装…...

【算法】递归+深搜:105.从前序与中序遍历序列构造二叉树

目录 1、题目链接 2、题目介绍 ​​3、解法 函数头-----找出重复子问题 函数体---解决子问题 4、代码 1、题目链接 105.从前序与中序遍历序列构造二叉树. - 力扣&#xff08;LeetCode&#xff09; 2、题目介绍 ​ 3、解法 前序遍历性质&#xff1a; 节点按照 [ 根节点 …...

ESP32 gptimer通用定时器初始化报错:assert failed: timer_ll_set_clock_prescale

背景&#xff1a;IDF版本V5.1.2 &#xff0c;配置ESP32 通用定时器&#xff0c;实现100HZ&#xff0c;占空比50% 的PWM波形。 根据乐鑫官方的IDF指导文档设置内部计数器的分辨率&#xff0c;计数器每滴答一次相当于 1 / resolution_hz 秒。 &#xff08;ESP-IDF编程指导文档&a…...

基于Python的旅游景点推荐系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;…...

【开源社区】ELK 磁盘异常占用解决及优化实践

1、问题及场景描述 本文主要讨论在 CentOS环境下基于 rpm 包部署 ELK 系统磁盘异常占用的问题解析和解决方案。 生产问题描述&#xff1a;以下问题现实场景基于ELK体系下&#xff0c;ES服务的磁盘占用问题解析。默认情况下&#xff0c;基于 RPM 安装的 Elasticsearch 服务的安…...

达梦数据守护集群_动态增加实时备库

目录 1、概述 2、实验环境 2.1环境信息 2.2配置信息 2.3 查看初始化参数 3、动态增加实时备库 3.1数据准备 3.2配置新备库 3.3动态增加MAL配置 3.4 关闭守护进程及监视器 3.5修改归档&#xff08;方法1&#xff1a;动态添加归档配置&#xff09; 3.6 修改归档&…...

计算机基础:Ping、Telnet和SSH

文章目录 PingTelnetSSLSSH隧道 Ping Ping和Telnet是两种常见的网络工具&#xff0c;它们分别用于测试网络连接和检查服务端口的连通性。 Ping是一种网络工具&#xff0c;用于测试主机之间的连通性。它通过发送ICMP&#xff08;Internet Control Message Protocol&#xff09…...

Java教学新动力:SpringBoot辅助平台

1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及&#xff0c;互联网成为人们查找信息的重要场所&#xff0c;二十一世纪是信息的时代&#xff0c;所以信息的管理显得特别重要。因此&#xff0c;使用计算机来管理教学辅助平台的相关信息成为必然。开发合适…...

24/11/3 算法笔记 Adam优化器拆解

Adam 优化器是一种用于深度学习中的自适应学习率优化算法&#xff0c;它结合了两种其他流行的优化方法的优点&#xff1a;RMSprop 和 Momentum。简单来说&#xff0c;Adam 优化器使用了以下方法&#xff1a; 1. **指数加权移动平均&#xff08;Exponentially Weighted Moving …...

浅谈语言模型推理框架 vLLM 0.6.0性能优化

在此前的大模型技术实践中&#xff0c;我们介绍了加速并行框架Accelerate、DeepSpeed及Megatron-LM。得益于这些框架的助力&#xff0c;大模型的分布式训练得以化繁为简。 然而&#xff0c;企业又该如何将训练完成的模型实际应用部署&#xff0c;持续优化服务吞吐性能&#xf…...

mongodb源码分析session执行handleRequest命令find过程

mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程&#xff0c;并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令&#xff0c;把数据流转换成Message&#xff0c;状态转变流程是&#xff1a;State::Created 》 St…...

无法与IP建立连接,未能下载VSCode服务器

如题&#xff0c;在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈&#xff0c;发现是VSCode版本自动更新惹的祸&#xff01;&#xff01;&#xff01; 在VSCode的帮助->关于这里发现前几天VSCode自动更新了&#xff0c;我的版本号变成了1.100.3 才导致了远程连接出…...

工程地质软件市场:发展现状、趋势与策略建议

一、引言 在工程建设领域&#xff0c;准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具&#xff0c;正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...

高等数学(下)题型笔记(八)空间解析几何与向量代数

目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...

css的定位(position)详解:相对定位 绝对定位 固定定位

在 CSS 中&#xff0c;元素的定位通过 position 属性控制&#xff0c;共有 5 种定位模式&#xff1a;static&#xff08;静态定位&#xff09;、relative&#xff08;相对定位&#xff09;、absolute&#xff08;绝对定位&#xff09;、fixed&#xff08;固定定位&#xff09;和…...

【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统

目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索&#xff08;基于物理空间 广播范围&#xff09;2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...

【7色560页】职场可视化逻辑图高级数据分析PPT模版

7种色调职场工作汇报PPT&#xff0c;橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版&#xff1a;职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...

JVM虚拟机:内存结构、垃圾回收、性能优化

1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...

C/C++ 中附加包含目录、附加库目录与附加依赖项详解

在 C/C 编程的编译和链接过程中&#xff0c;附加包含目录、附加库目录和附加依赖项是三个至关重要的设置&#xff0c;它们相互配合&#xff0c;确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中&#xff0c;这些概念容易让人混淆&#xff0c;但深入理解它们的作用和联…...

Webpack性能优化:构建速度与体积优化策略

一、构建速度优化 1、​​升级Webpack和Node.js​​ ​​优化效果​​&#xff1a;Webpack 4比Webpack 3构建时间降低60%-98%。​​原因​​&#xff1a; V8引擎优化&#xff08;for of替代forEach、Map/Set替代Object&#xff09;。默认使用更快的md4哈希算法。AST直接从Loa…...