Java中String方法学习总结_kaic

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.mzph.cn/news/26416.shtml

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

相关文章

一文学透设计模式

设计模式是什么? 设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案,代表了解决一些问题的最佳实践。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。 说白了,设计模式对于软件开发人员来说就…

K8S系列文章 之 容器网络基础 Docker0

什么是Docker0 使用ip addr命令看一下网卡&#xff1a; rootKitDevVps:~# ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host…

优维低代码实践:对接数据

优维低代码技术专栏&#xff0c;是一个全新的、技术为主的专栏&#xff0c;由优维技术委员会成员执笔&#xff0c;基于优维7年低代码技术研发及运维成果&#xff0c;主要介绍低代码相关的技术原理及架构逻辑&#xff0c;目的是给广大运维人提供一个技术交流与学习的平台。 优维…

数据结构--单链表OJ题

上文回顾---单链表 这章将来做一些链表的相关题目。 目录 1.移除链表元素 2.反转链表 3.链表的中间结点 4.链表中的倒数第k个结点 5.合并两个有序链表 6.链表分割 7.链表的回文结构 8.相交链表 9.环形链表 ​编辑 10.环形链表II ​编辑 ​编辑 1.移除链表元素 思…

windows永久暂停更新

目录 1.winr,输入regedit打开注册表 2.打开注册表的这个路径: 计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings 右键空白地方新建QWORD值命名为:FlightSettingsMaxPauseDays 3.双击FlightSettingsMaxPauseDays,修改里面的值为100000,右边基数设置…

Node.js |(一)Node.js简介及计算机基础 | 尚硅谷2023版Node.js零基础视频教程

学习视频&#xff1a;尚硅谷2023版Node.js零基础视频教程&#xff0c;nodejs新手到高手 文章目录 &#x1f4da;关于Node.js&#x1f407;为什么要学Node.js&#x1f407;Node.js是什么&#x1f407;Node.js的作用&#x1f407;Node.js下载安装&#x1f407;命令行工具&#x1…

ebay儿童书包产品CPC认证

儿童书包是一种能够盛放书本或者文具的包。现在的书包五花八门&#xff0c;以普通的布料或者是帆布等制成&#xff0c;有背带&#xff0c;包内一般分栏。一般分三种&#xff0c;背在身后的&#xff0c;挎在肩上的&#xff0c;轮式&#xff08;可以拖行&#xff09;的。 一、美国…

树,森林的遍历,以及其与二叉树遍历之间的关系

树和森林的的遍历 树的遍历 先根遍历 以下列树为演示 首先将树转化成二叉树&#xff08;孩子兄弟表示法&#xff1a;就是每个节点的左边连着它的左孩子&#xff0c;右边连自己右边的第一个兄弟&#xff09; 然后把转化为的二叉树进行先序遍历&#xff0c;中序遍历 进行先序…

JavaScript --闭包(Closure)

概念 闭包是一种特殊的函数&#xff0c;它可以访问并操作在其定义时所处的作用域中的变量&#xff0c;即使这些变量在函数执行时不再存在。要理解闭包&#xff0c;我们需要掌握以下几个关键概念&#xff1a; 作用域&#xff08;Scope&#xff09;&#xff1a;作用域是定义变量…

再次斩获第一,文心3.5霸榜国内大模型

目录 1 什么是文心一言&#xff1f;2 体验与文心一言对话3 文心3.5霸榜国内大模型 1 什么是文心一言&#xff1f; 文心一言是百度全新一代知识增强大语言模型&#xff0c;文心大模型家族的新成员&#xff0c;能够与人对话互动&#xff0c;回答问题&#xff0c;协助创作&#xf…

【数据结构】Disruptor环形数组无锁并发框架阅读

Disruptor 是苹国外厂本易公司LMAX开发的一个高件能列&#xff0c;研发的初夷是解决内存队列的延识问顾在性能测试中发现竟然与10操作处于同样的数量级)&#xff0c;基于Disruptor开发的系统单线程能支撑每秒600万订单&#xff0c;2010年在QCn演讲后&#xff0c;获得了业界关注…

linux内网穿透应用场景有哪些?快解析有什么用处?

随着网络技术的不断发展&#xff0c;无论是工作上还是在生活中人们对网络的依赖和需求越来越高。Linux内网穿透作为一种创新的解决方案&#xff0c;为我们提供了无限可能。 首先我们了解一下Linux操作系统。Linux是一套免费使用和自由传播的类Unix操作系统&#xff0c;是一个基…

用Python获取链家二手房房源数据,做可视化图分析数据

前言 数据采集的步骤是固定: 发送请求, 模拟浏览器对于url地址发送请求获取数据, 获取网页数据内容 --> 请求那个链接地址, 返回服务器响应数据解析数据, 提取我们需要的数据内容保存数据, 保存本地文件 所需模块 win R 输入cmd 输入安装命令 pip install 模块名 (如果你…

DNS:DNS问题故障排查

写在前面 分享一些 DNS 排故的笔记给小伙伴博文内容涉及 DNS 解析顺序&#xff0c;常见排故顺序理解不足小伙伴帮忙指正 对每个人而言&#xff0c;真正的职责只有一个&#xff1a;找到自我。然后在心中坚守其一生&#xff0c;全心全意&#xff0c;永不停息。所有其它的路都是不…

UML-构件图

目录 1.概述 2.构件的类型 3.构件和类 4.构件图 1.概述 构件图主要用于描述各种软件之间的依赖关系&#xff0c;例如&#xff0c;可执行文件和源文件之间的依赖关系&#xff0c;所设计的系统中的构件的表示法及这些构件之间的关系构成了构件图 构件图从软件架构的角度来描述…

leetcode357周赛

2810. 故障键盘 核心思想&#xff1a;自己想的笨办法&#xff0c;枚举s&#xff0c;然后遇到i就翻转。比较好的方法就是双端队列&#xff0c;遇到i字母原本往后加的就往前加&#xff0c;然后读的时候反过来读&#xff0c;往前加的就往后加&#xff0c;读的话就从前往后&#x…

git 版本控制与合并

一 git概述&#xff1a; - Git是一种分布式版本控制系统&#xff0c;用于跟踪和管理软件开发项目中的代码变更。 - 它允许多人协同工作&#xff0c;记录代码历史变更&#xff0c;并轻松管理多个项目版本。 **Git的主要特点**包括&#xff1a; 1. **分布式系统**&#xff1a;…

小研究 - MySQL 分区分表的设计及实(一)

随着信息技术的快速发展&#xff0c;数据量越来越大&#xff0c;海量的表查询操作需要消耗大量的时间&#xff0c;成为影响数据库访问性能提高的主要因素。为了提升数据库操作的查询效率和用户体验&#xff0c;在关系型数据库管理系统(MySQL)中通过 range 分区和 Merge 存储&am…

c++:day4

1.思维导图 2.shell函数获取uid和gid&#xff0c;并用变量接 #!/bin/bashfunction fun() {read -p "输入用户名" necho uid:id -u $necho gid:id -g $n } afun echo $a3.冒泡、选择和快排代码整理 /**************************************************************…

嵌入式一开始该怎么学?学习单片机

学习单片机&#xff1a; 模电数电肯定必须的&#xff0c;玩单片机大概率这两门课都学过&#xff0c;学过微机原理更好。 直接看野火的文档&#xff0c;芯片手册&#xff0c;外设手册。 学单片机不要纠结于某个型号&#xff0c;我认为stm32就OK&#xff0c;主要是原理和感觉。…