JAVA基础【String类】

在 Java 编程中,String 类是一个非常重要且常用的类,用于表示字符串对象。本文将详细介绍 Java 中的 String 类,包括定义、常用方法、不可变性特性以及字符串拼接等方面的内容。

1. String 类的定义与创建

定义

String 是 Java 中的一个类,用于表示字符串对象,属于 java.lang 包。

创建对象

可以使用双引号(")来创建字符串常量,也可以使用 new 关键字实例化一个字符串对象。

String str1 = "Hello, World!"; // 使用字符串常量创建对象
String str2 = new String("Java String"); // 使用 new 关键字实例化对象

2. String 类的常用方法

String 类提供了丰富的方法来对字符串进行操作,常用方法包括但不限于:

  • length(): 返回字符串的长度。
  • charAt(int index): 返回字符串中指定索引位置的字符。
  • toUpperCase(): 将字符串转换为大写。
  • toLowerCase(): 将字符串转换为小写。
  • concat(String str): 连接两个字符串。
  • equals(Object obj): 比较字符串内容是否相等。
  • indexOf(String str): 返回字符串中子字符串第一次出现的位置。
  • substring(int beginIndex, int endIndex): 返回指定索引范围内的子字符串。
String str = "Java Programming";
int len = str.length(); // 获取字符串长度
char firstChar = str.charAt(0); // 获取第一个字符
String upperCaseStr = str.toUpperCase(); // 转换为大写
String subStr = str.substring(0, 4); // 截取子字符串

3. String 类的不可变性

String 类的一个重要特性是不可变性,即一旦创建了一个 String 对象,在内存中它的值就无法被修改。任何对字符串的操作都会生成一个新的对象,而原对象保持不变。

String str = "Java";
str.concat(" Programming"); // 创建一个新的字符串对象,原对象不受影响
System.out.println(str); // 输出仍为 "Java"

4. 字符串拼接

在 Java 中进行字符串拼接有多种方式,包括使用加号(+)、concat() 方法、StringBuilder 和 StringBuffer 类等。对于频繁的字符串拼接操作,推荐使用 StringBuilder 或 StringBuffer,以提高性能。

String str1 = "Hello, ";
String str2 = "Java";
String result = str1 + str2; // 使用加号进行字符串拼接
System.out.println(result); // 输出 "Hello, Java"StringBuilder sb = new StringBuilder();
sb.append("Hello, ");
sb.append("Java");
String result2 = sb.toString(); // 使用 StringBuilder 进行字符串拼接

测试示例代码

以下是对 Java String 类中常用方法的简单测试示例,以验证它们的功能和正确性:

public class Main {public static void main(String[] args) {// length() 方法测试String str = "Hello, World!";int len = str.length();System.out.println("字符串长度为:" + len);// charAt() 方法测试char firstChar = str.charAt(0);System.out.println("第一个字符是:" + firstChar);// toUpperCase() 方法测试String upperCaseStr = str.toUpperCase();System.out.println("转换为大写后的字符串:" + upperCaseStr);// toLowerCase() 方法测试String lowerCaseStr = str.toLowerCase();System.out.println("转换为小写后的字符串:" + lowerCaseStr);// concat() 方法测试String concatStr = str.concat(" Have a nice day!");System.out.println("拼接后的字符串:" + concatStr);// equals() 方法测试String str1 = "Java";String str2 = "Java";boolean isEqual = str1.equals(str2);System.out.println("两个字符串内容是否相等:" + isEqual);// indexOf() 方法测试int index = str.indexOf("World");System.out.println("子字符串第一次出现的位置:" + index);// substring() 方法测试String subStr = str.substring(7, 12);System.out.println("截取的子字符串为:" + subStr);}
}

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

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

相关文章

【C++初阶学习】第十三弹——优先级队列及容器适配器

C语言栈:数据结构——栈(C语言版)-CSDN博客 C语言队列:数据结构——队列(C语言版)-CSDN博客 C栈与队列:【C初阶学习】第十二弹——stack和queue的介绍和使用-CSDN博客 前言: 在前面,我们已经…

Android基础-自定义view

在Android开发中,自定义View是一个常见的需求,它允许开发者根据应用的具体需求创建独特的UI元素。自定义View可以极大地增强应用的用户界面和用户体验。下面将详细阐述Android中自定义View的方式和方法,包括基本的步骤、常见的技巧和一些深入…

2024.6.10 一

Python多进程 进程 一系列有序指令集用来实现某些功能,每个进程都有自己独立的一块内存空间,一个进程可以有多个线程. 程序就是我们安装好的应用,我们打开程序时,就创建了相应的进程,操作系统会为进程分配相应的资源 线程 是进程中的一个执行任务(控制…

Java24:会话管理 过滤器 监听器

一 会话管理 1.cookie 是一种客户端会话技术,cookie由服务端产生,它是服务器存放在浏览器的一小份数据,浏览器 以后每次访问服务器的时候都会将这小份的数据带到服务器去。 //创建cookie对象 Cookie cookie1new Cookie("…

vuInhub靶场实战系列--Kioptrix Level #3

免责声明 本文档仅供学习和研究使用,请勿使用文中的技术源码用于非法用途,任何人造成的任何负面影响,与本人无关。 目录 免责声明前言一、环境配置1.1 靶场信息1.2 靶场配置 二、信息收集2.1 主机发现2.1.1 netdiscover2.1.2 arp-scan主机扫描 2.2 端口扫描2.3 指纹识别2.4 目…

智能合约中外部调用漏洞

外部调用 : 在智能合约开发中,调用不受信任的外部合约是一个常见的安全风险点。这是因为,当你调用另一个合约的函数时,你实际上是在执行那个合约的代码,而这可能会引入你未曾预料的行为,包括恶意行为。下面…

基于Ascend C的FlashAttention算子性能优化最佳实践

LLM的Attention部分处理给计算系统带来巨大的计算和访存压力。业界先后出现FlashAttention、FlashAttention2等算法,通过计算等价和切分有效降低HBM数据访问量。 昇腾异构计算架构CANN针对昇腾AI处理器的片上内存和缓存大小,以及数据搬运通路&#xff0…

为Nanopi m1交叉编译opencv

为Nanopi m1交叉编译opencv 一、下载交叉编译器 根据之前的博客进行 二、下载opencv和必要库 sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-devgit clone https://github.com/opencv/opencv.git cd opencv三、进行编…

鸿蒙开发必备:《DevEco Studio 系列一:实用功能解析与常用快捷键大全》

系列文章目录 文章目录 系列文章目录前言一、下载与安装小黑板 二、IDE被忽略的实用功能-帮助(Help)1.Quick Start2. API Reference3.FAQ 三、常用快捷键一、编辑二、查找或替换三、编译与运行四、调试五、其他 前言 DevEco Studio)是基于In…

nginx-虚拟主机如何配置

8、 nginx 命令功能 nginx -c /path/nginx.conf # 以特定目录下的配置文件启动nginx: nginx -s reload # 修改配置后重新加载生效 nginx -s stop # 快速停止nginx nginx -s quit # 正常停止nginx nginx -t # 测试当前配置文件…

协程库——面试问题

1 同步、异步 1.1 同步 代码顺序执行,完全由用户控制. 同步阻塞 等待可读、可写的时候阻塞,不让出cpu。读、写之后,下面的代码才能执行、 同步非阻塞 等待可读、可写时,不会阻塞cpu,返回失败,设置错误码为…

I/O 系统的功能、模型与接口

目录 I/O 系统的基本功能 1. 设备独立性 2. 缓冲 3. 设备共享 4. 高速缓存 5. 设备管理 I/O 系统的层次结构与模型 1. 单块传输模型 2. 缓冲管理模型 3. 通道模型 4. 虚拟设备模型 5. 直接内存访问(DMA)模型 6. 层次结构示意图 I/O…

【代码随想录训练营】【Day 48】【动态规划-7】| 卡码 57, Leetcode 322, 279

【代码随想录训练营】【Day 48】【动态规划-7】| 卡码 57, Leetcode 322, 279 需强化知识点 python 的幂次计算, 10 ** 5, 10 **(0.5) 题目 卡码 57. 爬楼梯(第八期模拟笔试) 注…

RK3568-修改fiq-debugger调试串口

瑞芯微SDK默认将uart2_m0作为调试串口,以下方法将调试串口修改为uart5_m1。修改bootloader 修改/OK3568-linux-source/rkbin/tools/ddrbin_param.txt文件,5表示串口5。1表示复用m1。执行./ddrbin_tool ddrbin_param.txt ../bin/rk35/rk3568_ddr_1560MHz_v1.11.bin命令修改ub…

Permissions 0644 for ‘/home/jsy/.ssh/id_rsa‘ are too open

1、问题 执行git pull --rebase 报错 WARNING: UNPROTECTED PRIVATE KEY FILE! Permissions 0644 for /home/jsy/.ssh/id_rsa are too open. It is required that your private key files are NOT accessible by others. This private key will be ignored. Load key…

el-table 实现表头置顶【干货满满】附源码

a)一般情况下,想要在 ElTable 上实现表头固定,滑动滚动条时希望表头常显,不被滚动条顶上去。这时候就需要给表格添加高度,但是这个高度需要提前确定好,不是很方便,表格上边一段距离不是固定的,常…

字节面试:CPU100% 如何处理?

尼恩说在前面 在40岁老架构师 尼恩的读者交流群(50)中,最近有小伙伴拿到了一线互联网企业如得物、阿里、滴滴、极兔、有赞、希音、百度、网易、美团的面试资格,遇到很多很重要的线上问题的场景题: 1.CPU100%,你是怎么处理的&…

操作系统复习-存储管理之虚拟内存

虚拟内存概述 有些进程实际需要的内存很大,超过物理内存的容量。多道程序设计,使得每个进程可用物理内存更加稀缺。不可能无限增加物理内存,物理内存总有不够的时候。虚拟内存是操作系统内存管理的关键技术。使得多道程序运行和大程序运行称…

算法金 | A - Z,115 个数据科学 机器学习 江湖黑话(全面)

大侠幸会,在下全网同名「算法金」 0 基础转 AI 上岸,多个算法赛 Top 「日更万日,让更多人享受智能乐趣」 机器学习本质上和数据科学一样都是依赖概率统计,今天整整那些听起来让人头大的机器学习江湖黑话 A - C A/B Testing (A/B …

windows域控共享网络驱动器

背景 假设在一家公司,有新入职的员工。我们给其创建了域账号,有一些共享的文件需要其可以直接访问到。我们可以采用共享目录的形式,但是每次都要输入共享端的ip或者主机名,比较麻烦。我们希望创建的域账号访问共享文件更便捷一些…