Java中String方法魔性学习

news2024/12/27 15:00:42

这里写目录标题

    • 先进行专栏介绍
    • String详解
      • 常用构造方法
      • 代码演示
      • 常用成员方法
      • 代码示例
      • 总结

先进行专栏介绍

本专栏是自己学Java的旅途,纯手敲的代码,自己跟着黑马课程学习的,并加入一些自己的理解,对代码和笔记
进行适当修改。希望能对大家能有所帮助,同时也是请大家对我进行监督,对我写的代码进行建议,互相学习。

在这里插入图片描述

String详解

Java中的String是一个不可变的字符序列,它是Java中最常用的数据类型之一。

常用构造方法

String():无参构造方法,创建一个空字符串对象。

String(char[] value):通过字符数组创建一个字符串对象。

String(char[] value, int offset, int count):通过字符数组的一部分创建一个字符串对象,从指定的
	偏移量开始,取count个字符。

String(byte[] bytes):通过字节数组创建一个字符串对象,使用平台的默认字符集将字节解码为字符。

String(byte[] bytes, int offset, int length):通过字节数组的一部分创建一个字符串对象,从指定的
	偏移量开始,取length个字节,并使用平台的默认字符集将字节解码为字符。

String(String original):通过复制原始字符串创建一个新的字符串对象。

String(StringBuffer buffer):通过StringBuffer对象创建一个字符串对象。

String(StringBuilder builder):通过StringBuilder对象创建一个字符串对象。

在这里插入图片描述

代码演示

public class crj{
    public static void main(String[] args) {
        // 无参构造方法
        String str1 = new String();
        System.out.println("str1: " + str1); 
        		// 输出:str1:

        // 通过字符数组创建字符串对象
        char[] charArray = {'H', 'e', 'l', 'l', 'o'};
        String str2 = new String(charArray);
        System.out.println("str2: " + str2); 
        		// 输出:str2: Hello

        // 通过字符数组的一部分创建字符串对象
        String str3 = new String(charArray, 2, 3);
        System.out.println("str3: " + str3); 
        		// 输出:str3: llo

        // 通过字节数组创建字符串对象
        byte[] byteArray = {72, 101, 108, 108, 111};
        String str4 = new String(byteArray);
        System.out.println("str4: " + str4); 
        		// 输出:str4: Hello

        // 通过字节数组的一部分创建字符串对象
        String str5 = new String(byteArray, 2, 3);
        System.out.println("str5: " + str5); 
        		// 输出:str5: llo

        // 通过复制原始字符串创建新的字符串对象
        String original = "Hello";
        String str6 = new String(original);
        System.out.println("str6: " + str6); 
        		// 输出:str6: Hello

        // 通过StringBuffer对象创建字符串对象
        StringBuffer buffer = new StringBuffer("Hello");
        String str7 = new String(buffer);
        System.out.println("str7: " + str7); 
       			 // 输出:str7: Hello

        // 通过StringBuilder对象创建字符串对象
        StringBuilder builder = new StringBuilder("Hello");
        String str8 = new String(builder);
        System.out.println("str8: " + str8); 
        		// 输出:str8: Hello
    }
}

常用成员方法

int length():返回字符串的长度。

char charAt(int index):返回指定索引位置的字符。

int indexOf(String str):返回指定子字符串在字符串中第一次出现的索引位置。

int lastIndexOf(String str):返回指定子字符串在字符串中最后一次出现的索引位置。

boolean startsWith(String prefix):判断字符串是否以指定的前缀开始。

boolean endsWith(String suffix):判断字符串是否以指定的后缀结束。

boolean isEmpty():判断字符串是否为空。

String substring(int beginIndex):返回从指定索引位置开始到字符串末尾的子字符串。

String substring(int beginIndex, int endIndex):返回从指定的开始索引位置到结束索引位置的子字
	符串。

String replace(char oldChar, char newChar):将字符串中的所有旧字符替换为新字符。

String replace(CharSequence target, CharSequence replacement):将字符串中的所有目标字符序列替换为指定的
	替换字符序列。

String[] split(String regex):将字符串根据指定的正则表达式分割为字符串数组。

String trim():去除字符串两端的空白字符。

boolean equals(Object obj):判断字符串是否与指定对象相等。

boolean equalsIgnoreCase(String anotherString):忽略大小写判断字符串是否与另一个字符串相等。

String toLowerCase():将字符串转换为小写。

String toUpperCase():将字符串转换为大写。

String concat(String str):将指定字符串连接到原字符串的末尾。

boolean contains(CharSequence sequence):判断字符串是否包含指定的字符序列。

String format(String format, Object... args):将指定格式的字符串与参数进行格式化。

在这里插入图片描述

代码示例

public class StringMethodsDemo {
    public static void main(String[] args) {
        String str = "Hello, World!";

        // length()
        int length = str.length();
        System.out.println("Length: " + length); 
        	// 输出:Length: 13

        // charAt(int index)
        char ch = str.charAt(7);
        System.out.println("Character at index 7: " + ch);
        	 // 输出:Character at index 7: W

        // indexOf(String str)
        int index = str.indexOf("World");
        System.out.println("Index of 'World': " + index); 
        	// 输出:Index of 'World': 7

        // lastIndexOf(String str)
        int lastIndex = str.lastIndexOf("o");
        System.out.println("Last index of 'o': " + lastIndex); 
        	// 输出:Last index of 'o': 8

        // startsWith(String prefix)
        boolean startsWith = str.startsWith("Hello");
        System.out.println("Starts with 'Hello': " + startsWith); 
        	// 输出:Starts with 'Hello': true

        // endsWith(String suffix)
        boolean endsWith = str.endsWith("World");
        System.out.println("Ends with 'World': " + endsWith); 
        	// 输出:Ends with 'World': false

        // isEmpty()
        boolean isEmpty = str.isEmpty();
        System.out.println("Is empty: " + isEmpty); 
        	// 输出:Is empty: false

        // substring(int beginIndex)
        String substring1 = str.substring(7);
        System.out.println("Substring from index 7: " + substring1);
        	 // 输出:Substring from index 7: World!

        // substring(int beginIndex, int endIndex)
        String substring2 = str.substring(7, 12);
        System.out.println("Substring from index 7 to 12: " + substring2); 
        	// 输出:Substring from index 7 to 12: World

        // replace(char oldChar, char newChar)
        String replaced = str.replace('o', 'O');
        System.out.println("Replaced string: " + replaced); // 输出:Replaced string: HellO, WOrld!

        // replace(CharSequence target, CharSequence replacement)
        String replaced2 = str.replace("World", "Universe");
        System.out.println("Replaced string: " + replaced2); 
        	// 输出:Replaced string: Hello, Universe!

        // split(String regex)
        String[] splitArray = str.split(",");
        System.out.println("Split array: " + Arrays.toString(splitArray));
        	 // 输出:Split array: [Hello,  World!]

        // trim()
        String trimmed = str.trim();
        System.out.println("Trimmed string: " + trimmed); 
        	// 输出:Trimmed string: Hello, World!

        // equals(Object obj)
        boolean equals = str.equals("Hello, World!");
        System.out.println("Equals 'Hello, World!': " + equals); 
        	// 输出:Equals 'Hello, World!': true

        // equalsIgnoreCase(String anotherString)
        boolean equalsIgnoreCase = str.equalsIgnoreCase("hello, world!");
        System.out.println("Equals ignore case 'hello, world!': " + equalsIgnoreCase); 
        	// 输出:Equals ignore case 'hello, world!': true

        // toLowerCase()
        String lowerCase = str.toLowerCase();
        System.out.println("Lower case: " + lowerCase); 
        	// 输出:Lower case: hello, world!

        // toUpperCase()
        String upperCase = str.toUpperCase();
        System.out.println("Upper case: " + upperCase); // 输出:Upper case: HELLO, WORLD!

        // concat(String str)
        String concat = str.concat(" How are you?");
        System.out.println("Concatenated string: " + concat); 
        	// 输出:Concatenated string: Hello, World! How are you?

        // contains(CharSequence sequence)
        boolean contains = str.contains("World");
        System.out.println("Contains 'World': " + contains); 
        	// 输出:Contains 'World': true

        // format(String format, Object... args)
        String formatted = String.format("The value of pi is approximately %.2f", Math.PI);
        System.out.println("Formatted string: " + formatted); 
        	// 输出:Formatted string: The value of pi is approximately 3.14
    }
}

在这里插入图片描述

总结

String是一个重要的数据类型,它提供了许多方法来处理字符串。由于字符串的不可变性,每次对字符串进行
操作都会创建一个新的字符串对象,因此在频繁操作字符串时需要注意性能问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/840727.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【redis】SpringBoot集成redis

目录 1.添加redis依赖2.配置redis3.操作redis3.1 操作string 3.1 操作其它数据类型 4. Spring-Session基于Redis解决共享Session问题4.1 问题提出 4.1 添加依赖 4.2 修改配置4.3 存储和读取 1.添加redis依赖 方法①&#xff1a; <dependency><groupId>org.springf…

ChatGPT已闯入学术界,Elsevier推出AI工具

2022年11月&#xff0c;OpenAI公司发布了ChatGPT&#xff0c;这是迄今为止人工智能在现实世界中最重要的应用之一。 当前&#xff0c;互联网搜索引擎中出现了越来越多的人工智能&#xff08;AI&#xff09;聊天机器人&#xff0c;例如谷歌的Bard和微软的Bing&#xff0c;看起来…

微信小游戏流量主结算财务信息填写指引

微信小游戏个人开发者: 流量主结算财务信息填写指南 一,登录公众平台二,补充财务信息三,补充信息指引四,提交审核五,绑定通知对于微信小游戏个人开发者来说,流量主结算财务信息的填写是非常重要的一步。正确填写可以保证收入的及时结算,而填写不当则可能会导致收入无法到…

wxRibbonBar 常用三种控件Button,DropdownButton,HybridButton

这三种控件的效果如下所示&#xff1a; 点击下拉的效果&#xff1a; 这一部分可以设置wxITEM_CHECK&#xff0c;wxITEM_RADIO等效果 但我们可能更关注实现实例&#xff1a; &#xff08;1&#xff09;MyFrame.h #pragma once #include <wx/wx.h> #include "wx/wx…

vue2-diff算法

1、diff算法是什么&#xff1f; diff算法是一种通过同层的树节点进行比较的高效算法。 其有两个特点&#xff1a; 比较只会在同层级进行&#xff0c;不会跨层级进行。 在diff比较的过程中&#xff0c;循环从两边向中间比较。 diff算法在很多场景中都有应用&#xff0c;在vue中&…

(学习笔记-进程管理)进程

进程 我们编写的代码只是一个存储在硬盘的静态文件&#xff0c;通过编译后会生成二进制可执行文件&#xff0c;当我们运行这个可执行文件后&#xff0c;它会被装载到内存中&#xff0c;接着CPU会执行程序中的每一条指令&#xff0c;那么这个运行中的程序就被称为进程。 现在我…

怎么加密文件夹才更安全?安全文件夹加密软件推荐

文件夹加密可以让其中数据更加安全&#xff0c;但并非所有加密方式都能够提高极高的安全强度。那么&#xff0c;怎么加密文件夹才更安全呢&#xff1f;下面我们就来了解一下那些安全的文件夹加密软件。 文件夹加密超级大师 如果要评选最安全的文件夹加密软件&#xff0c;那么文…

python GUI nicegui初识一(登录界面创建)

最近尝试了python的nicegui库&#xff0c;虽然可能也有一些不足&#xff0c;但个人感觉对于想要开发不过对ui设计感到很麻烦的人来说是很友好的了&#xff0c;毕竟nicegui可以利用TailwindCSS和Quasar进行ui开发&#xff0c;并且也支持定制自己的css样式。 这里记录一下自己利…

spring security + oauth2 使用RedisTokenStore 以json格式存储

1.项目架构 2.自己对 TokenStore 的 redis实现 package com.enterprise.auth.config;import org.springframework.data.redis.connection.RedisConnection; import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis…

leetcode刷题:1657. 确定两个字符串是否接近、1004. 最大连续1的个数 III

leetcode刷题:1657. 确定两个字符串是否接近、1004. 最大连续1的个数 III 1. 前言2. 1657. 确定两个字符串是否接近3. 1004. 最大连续1的个数 III4. 总结 1. 前言 上述两个题目位于leetcode75中&#xff0c;难度为中等&#xff0c;虽然对于大佬而言&#xff0c;可能很简单&…

2023年C++面试宝典

目录 第一章&#xff1a;C基础知识1.1 C语言起源与发展1.2 C的重要特点和优点1.3 C的数据类型和变量1.4 函数和命名空间1.5 运算符和表达式 第二章&#xff1a;面向对象编程2.1 类与对象的概念2.2 封装、继承和多态2.3 构造函数和析构函数2.4 静态成员和常量成员2.5 虚函数和纯…

maven install命令:将包安装在本地仓库,供本地的其它工程或者模块依赖

说明 有时候&#xff0c;自己本地的maven工程依赖于本地的其它工程&#xff0c;或者manven工程中的一个模块依赖于另外的模块&#xff0c;可以执行maven的install命令&#xff0c;将被依赖的包安装在maven本地仓库。 示例 一个工程包含几个模块&#xff0c;模块之间存在依赖…

【笔记】第94期-冯永吉-《湖仓集一体关键技术解读》-大数据百家讲坛-厦大数据库实验室主办20221022

https://www.bilibili.com/video/BV1714y1j7AU/?spm_id_from333.337.search-card.all.click&vd_sourcefa36a95b3c3fa4f32dd400f8cabddeaf

VSCode配置SSH远程免密登录服务器

VScode远程开发时&#xff0c;每次都需要输入密码&#xff0c;其实同理可以和其他应用类似配置免密登录&#xff0c;流程也类似。 1.在本地主机生成公钥和秘钥 ssh-keygen 2.将公钥内容添加至服务器 将生成钥对时会给出其保存路径&#xff0c;找到公钥&#xff0c;复制内容&am…

废弃的 电信光猫 改为 免费的wifi

修改为桥接模式即可。 1.修改电脑IP地址与光猫同一网段&#xff0c;例如192.168.1.2 掩码255.255.255.0。 电信光猫默认地址为 192.168.1.1 掩码为 255.255.255.0 2.网线或者无线连接光猫&#xff0c;无线wifi 名称&#xff08;SSID&#xff09;和密码 光猫背后都有。 3.浏…

事务到底是隔离的还是不隔离的 (具体)

遇到不明白的慢慢往后读&#xff0c;一下你就明白了。 下面是一个只有两行的表的初始化语句 mysql> CREATE TABLE t ( id int(11) NOT NULL, k int(11) DEFAULT NULL, PRIMARY KEY (id) ) ENGINEInnoDB; insert into t(id, k) values(1,1),(2,2); 这里&#xff0c;我们需要注…

ADS版图画封装联合仿真学习视频

ADS版图画封装 因为晶体管ATF54143在ADS中是没有封装的&#xff0c;所以要在ADS中画ATF54143的封装&#xff0c;操作步骤如下&#xff1a; 在ADS中新建layout&#xff0c;命名为ATF54143_layout&#xff0c; 根据datasheet知道封装的大小&#xff0c;进行绘制 在layout的con…

GO语言基础语法探究:简洁高效的编程之道

文章目录 前言Go词法单元token标识符关键字&#xff08; 25个 &#xff09;内置数据类型标识符&#xff08; 20个 &#xff09;内置函数&#xff08; 15个 &#xff09;常量值标识符&#xff08; 4个&#xff09;空白标识符&#xff08; 1个 &#xff09; 操作符和分隔符字面常…

通向架构师的道路之基于数据库的权限系统的设计

一、权限系统 这一天将讲述一个基本的基于数据库的权限管理系统的设计&#xff0c;在这一天的课程的最后将讲述“左右值无限分类实现算法”如何来优化“系统菜单”的结构而告终。今天的内容和前几天的基础框架是一样的它们都属于基础知识&#xff0c;在这些基础知识上还可以扩…

Leetcode 剑指 Offer II 038. 每日温度

题目难度: 中等 原题链接 今天继续更新 Leetcode 的剑指 Offer&#xff08;专项突击版&#xff09;系列, 大家在公众号 算法精选 里回复 剑指offer2 就能看到该系列当前连载的所有文章了, 记得关注哦~ 题目描述 请根据每日 气温 列表 temperatures &#xff0c;重新生成一个列…