Java基础Day-Thirteen

devtools/2024/11/8 9:20:19/

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));

http://www.ppmy.cn/devtools/132270.html

相关文章

针对解决前后端BUG的个人笔记

1-IDEA Q&#xff1a;Required Java version 17 is not supported by SDK 1.8. The maximum supported Java version is 8. A: 我们只知道IDEA页面创建Spring项目&#xff0c;其实是访问spring initializr去创建项目。故我们可以通过阿里云国服去间接创建Spring项目。将https…

Bert框架详解(上)

目录 一、传统的自然语言处理框架存在的问题 1、RNN网络计算时存在的问题 2、传统word2vec存在的问题 二、Bert模型机制 1、编码-解码框架&#xff08;Encoder-Decoder&#xff09; &#xff08;1&#xff09;、编码器&#xff08;Encoder&#xff09; &#xff08;2&…

Java项目实战II基于Spring Boot的便利店信息管理系统(开发文档+数据库+源码)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 在快节奏的…

【Rust设计模式之建造者模式】

Rust设计模式之建造者模式 什么是建造者模式 什么是建造者模式 即将结构体属性方法与构建解离&#xff0c;使用专门的builder进行建造&#xff0c;说白了就是new和其他的方法分开&#xff0c;集中处理更方便。 直接上代码&#xff1a; #[derive(Debug)] struct children {nam…

设计模式-责任链

以下是根据文章内容生成的Java责任链设计模式的代码示例&#xff0c;包含两种不同的使用场景&#xff1a; 场景一&#xff1a;请求过滤 抽象处理器 package com.design.mode.responsibilityChain.responsibility01; public interface MyFilter {boolean doFilter(MyRequest …

LabVIEW实验室液压制动系统

压制动系统是许多实验设备的重要安全组件&#xff0c;尤其在高负荷、高速实验环境下&#xff0c;制动系统的性能对设备和操作人员的安全至关重要。传统的实验室液压制动系统监测方法存在数据采集实时性差、精度低、故障预警不及时等问题。为了提高实验安全性和设备运行的稳定性…

深入理解 C/C++ 中的不完整类型(Incomplete Type)

在 C/C 编程中&#xff0c;我们有时会遇到 “不完整类型”&#xff08;Incomplete Type&#xff09;的概念&#xff0c;尤其是在跨 C 和 C 代码之间进行集成开发时。不完整类型是编译器中的一种特殊概念&#xff0c;用于提高封装性和减少代码耦合。在这篇博客中&#xff0c;我将…

【LwIP源码学习4】主线程tcpip_thread

前言 本文对lwip的主要线程tcpip_thread进行分析。 正文 tcpip_thread是lwip最主要的线程&#xff0c;其创建在tcpip_init函数中 sys_thread_new(TCPIP_THREAD_NAME, tcpip_thread, NULL, TCPIP_THREAD_STACKSIZE, TCPIP_THREAD_PRIO);tcpip_init函数被TCPIP_Init函数调用。…