当前位置: 首页 > 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…...

企业财务自动化全场景落地,从入门到精通的完整指南 —— 2026企业级智能体选型与实战路径

在2026年的数字化深水区&#xff0c;企业财务管理正经历从“信息化”向“原生智能化”的跨代跃迁。 随着金税四期的全场景覆盖与数据要素资产化的推进&#xff0c;财务部门已不再满足于基础的流程自动化。 从“钱、票、账、税、资”的碎片化处理&#xff0c;到构建全链路闭环的…...

TikTok直播卡顿、发布失败?可能是你的动态IP池没调好(附IPIPD轮询策略设置)

TikTok直播与内容发布的动态IP优化实战指南 直播突然中断、视频上传失败——这些看似随机的网络问题&#xff0c;往往源于动态IP池的配置不当。许多运营者投入大量成本获取优质IP资源&#xff0c;却因参数设置不合理导致实际效果大打折扣。本文将深入解析TikTok平台的风控机制与…...

OpenClaw 局域网访问配置文档

OpenClaw 局域网访问配置文档 概述 本文档详细说明了如何配置 OpenClaw 以允许局域网内的其他设备访问,包括所有相关配置参数的作用和说明。 当前配置状态 网关服务信息 服务端口: 18789 绑定模式: lan (局域网访问) 认证方式: password (密码认证) 访问密码: xxxxxx 详细…...

终极删除命令(强制解锁 + 删文件 + 删目录)

&#x1f525; 终极删除命令&#xff08;强制解锁 删文件 删目录&#xff09;前言 二、使用步骤 // “E:\Documents\HBuilderProjects\个人简历\tmpim” 是想要删除的文件夹 ① 解锁所有被占用的文件&#xff08;解决 “正在使用”&#xff09; cmd taskkill /f /im HBuilde…...

编译系统概述

前置知识&#xff1a;硬件-操作系统-用户操作系统是什么&#xff1f;往下描述&#xff0c;操作系统是对硬件控制的封装&#xff0c;往上描述&#xff0c;是管理程序的软件。操作系统主要有这几大部分组成&#xff1a;1.操作系统如何管理CPU&#xff1a;进程、线程、调度和同步机…...

SearXNG 多架构 Docker 镜像:支持 amd64、arm64 和 arm/v7 的完整指南

SearXNG 多架构 Docker 镜像&#xff1a;支持 amd64、arm64 和 arm/v7 的完整指南 【免费下载链接】searxng-docker The docker-compose files for setting up a SearXNG instance with docker. 项目地址: https://gitcode.com/gh_mirrors/se/searxng-docker 想要在五分…...

计算机毕业设计:Python中国地铁网络智能分析系统 Flask框架 数据分析 可视化 高德地图 数据挖掘 机器学习 爬虫(建议收藏)✅

博主介绍&#xff1a;✌全网粉丝10W,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业项目实战6年之久&#xff0c;选择我们就是选择放心、选择安心毕业✌ > &#x1f345;想要获取完整文章或者源码&#xff0c;或者代做&#xff0c;拉到文章底部即可与…...

黑客技术?没你想象的那么难!—— DNS 劫持篇

黑客技术&#xff1f;没你想象的那么难&#xff01;——dns劫持篇 什么是DNS劫持&#xff1f; DNS劫持就是通过劫持了DNS服务器&#xff0c;通过某些手段取得某域名的解析记录控制权&#xff0c;进而修改此域名的解析结果&#xff0c;导致对该域名的访问由原IP地址转入到修改后…...

安全测试左移:在CI/CD中集成安全扫描

安全困境与左移的必要性 在快速迭代的敏捷开发与DevOps浪潮中&#xff0c;软件交付的周期被急剧压缩&#xff0c;然而&#xff0c;传统安全测试模式却显得格格不入。测试阶段末期的一次性渗透测试或代码审计&#xff0c;发现的往往是积重难返的高危漏洞&#xff0c;修复成本高…...

BetterNCM安装器完全指南:3分钟掌握网易云音乐插件管理技巧

BetterNCM安装器完全指南&#xff1a;3分钟掌握网易云音乐插件管理技巧 【免费下载链接】BetterNCM-Installer 一键安装 Better 系软件 项目地址: https://gitcode.com/gh_mirrors/be/BetterNCM-Installer 你是否厌倦了网易云音乐客户端的功能限制&#xff1f;想要为你的…...