Java:String 类

文章目录

  • 一、概念
  • 二、创建字符串
  • 三、字符串长度
  • 四、连接字符串
  • 五、比较字符串

一、概念

字符串广泛应用 在 Java 编程中,在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串。


二、创建字符串

创建字符串最简单的方式如下:

// 直接创建
String str = "Hello";

用构造方法创建字符串:

// 构造方法创建
String str = new String("Hello");

注:直接创建的字符串存储在公共池中,而 new 创建的字符串对象在堆上:

String s1 = "Runoob";               // 直接创建
String s2 = "Runoob";               // 直接创建
String s3 = s1;                     // 相同引用
String s4 = new String("Runoob");   // 构造方法创建
String s5 = new String("Runoob");   // 构造方法创建

在这里插入图片描述
String 类有很多种构造方法,这些方法都是用来为对象提供不同的参数来初始化字符串,比如提供一个字符数组参数:

public class Test {
    public static void main(String[] args) {
        // 字符数组
        char[] chars = {'H', 'E', 'L', 'L', 'O'};
        String str = new String(chars);
        System.out.println(str);
    }
}

运行结果:

HELLO

注:String 类是不可改变的,所以你一旦创建了 String 对象,那它的值就无法改变了。 如果需要对字符串做很多修改,那么应该选择使用 StringBuffer & StringBuilder 类。


三、字符串长度

String 类的有一个 length() 方法,它返回字符串对象包含的字符数。

public class Test {
    public static void main(String[] args) {
        String str = "Hello";
        System.out.println("str字符串的长度是:" + str.length());
    }
}

运行结果:

str字符串的长度是:5

四、连接字符串

String 类提供了连接两个字符串的方法:

public class Test {
    public static void main(String[] args) {
        // 1、直接 + 运算(常用)
        String str = "Hello" + " World";
        System.out.println("直接 + 运算(常用):" + str);
        // 2、concat()方法
        String s1 = "Hello";
        String s2 = " World";
        System.out.println("concat()方法:" + s1.concat(s2));
    }
}

运行结果:

直接 + 运算(常用):Hello World
concat()方法:Hello World

五、比较字符串

在字符串中可以使用 equals() 方法比较,用于将字符串与指定的对象比较内容是否相等。

== 比较

用 == 比较要分两种情况:

  1. 基本数据类型:比较的是两个数据的值是否一致;
  2. 引用数据类型:比较的是两个对象的地址值是否一致。
public class Test {
    public static void main(String[] args) {
        // 基本数据类型
        System.out.println("====== 基本数据类型 ======");
        int n1 = 10;
        int n2 = 10;
        if (n1 == n2) {
            System.out.println("n1等于n2");
        }

        // 引用数据类型
        System.out.println("====== 引用数据类型 ======");
        String s1 = "Hello";
        String s2 = new String("Hello");
        if (s1 == s2) {
            System.out.println("s1等于s2");
        }else {
            System.out.println("s1不等于s2");
        }
    }
}

运行结果:

====== 基本数据类型 ======
n1等于n2
====== 引用数据类型 ======
s1不等于s2

equals() 比较

equals() 是专门用来比较字符串内容是否相同的。

public class Test {
    public static void main(String[] args) {
        String s1 = "Hello";
        String s2 = new String("Hello");
        // equals:比较字符串对象内容是否一致
        if (s1.equals(s2)) {
            System.out.println("对象内容一致");
        }
        
        // equalsIgnoreCase:比较字符串对象内容是否一致,且忽略大小写
        String s3 = "Hello";
        String s4 = new String("HELLO");
        if (s3.equalsIgnoreCase(s4)) {
            System.out.println("对象内容一致");
        }
    }
}

运行结果:

对象内容一致
对象内容一致

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C++ 面试宝典之:空类大小究竟是不是 0?

以下内容为本人的学习笔记,如需要转载,请声明原文链接 微信公众号「ENG八戒」https://mp.weixin.qq.com/s/pD4bIjX2kDzo8gbYRPktPQ 首先,空类是什么?空类指的是不包含任何数据成员的类,但可能包含方法成员。 实例化时…

苹果电脑压缩软件哪个好用一些? mac电脑用什么压缩软件 mac电脑压缩文件怎么设置密码

压缩软件是Mac电脑必不可少的工具,虽然Mac系统自带了一款“归档实用工具”,但是其功能实在匮乏,若你需要加密压缩文件或者把文件压缩成指定格式,那么该工具无法满足你的需求。Mac用户应该怎么选择压缩软件呢?本文就来告…

git 文件没有修改,但一直提示有0行改动,还原也不行

查看文件修改内容 原来是文件的模式(读写可执行权限)发生了变化,内容本是没有变化. 怎么解决 git config --add core.filemode false忽略文件模式

java中反射(Reflection)的4个作用

java中反射(Reflection)的4个作用 作用1、在运行时判断任意一个对象所属的类作用2、在运行时构造任意一个类的对象作用3、在运行时判断任意一个类所具有的成员变量和方法作用4、在运行时调用任意一个对象的方法总结 💖The Begin💖…

Excel 宏录制与VBA编程 ——VBA编程技巧篇二 (合并内容相同连续单元格、取消合并单元格并在每个单元格中保留内容)

1、合并内容相同的连续单元格 如果需要合并如图所示的工作表中B列中部门相同的连续单元格 VBA代码: Sub Mergerng()Dim IntRow As IntegerDim i As IntegerApplication.DisplayAlerts FalseWith Sheet1IntRow .Range("A65536").End(xlUp).RowFor i In…

移动UI: 什么特征会被认为是简洁风格,用案例告诉你

什么是简洁风格,恐怕一百个人有一百个是理解,本文通过理论分析案例的方式进行探讨。 移动 UI 中的简洁风格通常具有以下几个特征: 1. 平面化设计: 简洁风格的移动 UI 善于运用平面化设计,即去除过多的阴影、渐变和立…

电子教室如何防止关闭客户端?

防止电子教室中的客户端被学生关闭或绕过,需要采取一系列技术和策略性的措施。以下是一些可行的方法: 技术手段 1. 使用专用教学软件: 采用具有强大控制功能的电子教室软件,如极域电子教室,它们通常包含防关闭、防退…

从工具到平台:AI PC 的崛起

从工具到平台:AI PC 的崛起 AI技术正以前所未有的速度改变着我们的生活和工作方式。随着大模型技术从云端向终端设备下沉,个人电脑正成为AI部署的首选终端。AI PC的崛起不仅标志着个人电脑行业的一次重大变革,更预示着一个全新的个人AI时代的…

2024年文化研究与数字媒体国际会议 (CRDM 2024)

2024年文化研究与数字媒体国际会议 (CRDM 2024) 2024 International Conference on Cultural Research and Digital Media 【重要信息】 大会地点:珠海 大会官网:http://www.iccrdm.com 投稿邮箱:iccrdmsub-conf.com 【注意:稿将…

算法 —— 二分查找

目录 二分查找 在排序数组中查找元素的第一个和最后一个位置 搜索插入位置 x的平方根 山峰数组的峰顶索引 寻找峰值 搜索旋转排序数组中的最⼩值 点名 二分查找模板分为三种:1、朴素的二分模板 2、查找左边界的二分模板 3、查找右边界的二分模板&#xf…

3D问界—什么是blender,与MAYA有什么区别

问题提出:什么是blender,与MAYA有什么区别 Blender 是一个开源的、免费的 3D 建模和动画软件,广泛应用于各种领域。它提供了丰富的功能和工具,适用于从业余爱好者到专业艺术家的不同需求。 1. Blender 的主要用途和功能 属 性描述…

十一、作业

1.从大到小输出 写代码将三个整数数按从大到小输出。 void Swap(int* px, int* py) {int tmp *px;*px *py;*py tmp;} int main() {int a 0;int b 0;int c 0;scanf("%d %d %d", &a, &b, &c);int n 0;if (a<b){Swap(&a, &b);}if (a &l…

数据库课设---酒店管理系统(MySQL、VBNet)

目录 一. 知识技术 二. 需求分析 2.1 功能需求 2.2 数据需求 三. 数据流图与数据字典 3.1 数据流图 3.1.1 业务流图 3.1.2 数据流图 3.1.3 关系图 3.2 数据字典 四. 数据库设计 4.1 概念模型设计 4.2 逻辑模型设计 4.3 数据库实现 …

强化学习中的Double DQN、Dueling DQN和PER DQN算法详解及实战

1. 深度Q网络&#xff08;DQN&#xff09;回顾 DQN通过神经网络近似状态-动作值函数&#xff08;Q函数&#xff09;&#xff0c;在训练过程中使用经验回放&#xff08;Experience Replay&#xff09;和固定目标网络&#xff08;Fixed Target Network&#xff09;来稳定训练过程…

计算机组成原理学习笔记(一)

计算机组成原理 [类型:: [[计算机基础课程]] ] [来源:: [[B站]] ] [主讲人:: [[咸鱼学长]] ] [评价:: ] [知识点:: [[系统软件]] & [[应用软件]] ] [简单解释:: 管理计算机系统的软件&#xff1b; 按照任务需要编写的程序 ] [问题:: ] [知识点:: [[机器字长]] ] [简单…

盘点2024年6月Sui生态发展,了解Sui近期成长历程

随着区块链技术的迅猛发展&#xff0c;Sui生态在2024年6月取得了令人欣喜的进步。作为创新的L1协议&#xff0c;Sui不仅在技术革新方面表现突出&#xff0c;还在DeFi、游戏应用和开发者工具等领域展现出强大的潜力。本篇文章将全面盘点Sui在过去一个月内的生态发展&#xff0c;…

【融合ChatGPT等AI模型】Python-GEE遥感云大数据分析、管理与可视化及多领域案例实践应用

随着航空、航天、近地空间遥感平台的持续发展&#xff0c;遥感技术近年来取得显著进步。遥感数据的空间、时间、光谱分辨率及数据量均大幅提升&#xff0c;呈现出大数据特征。这为相关研究带来了新机遇&#xff0c;但同时也带来巨大挑战。传统的工作站和服务器已无法满足大区域…

JavaSE第10篇:常用类

文章目录 一、Object1、Object使用2、toString3、equals和4、hashCode5、clone6、finalize7、getClass8、wait、notify和notifyAll 二、使用步骤 一、Object 1、Object使用 Object类是所有Java的根父类 如果在类的声明中未使用extends关键字指明其父类&#xff0c;则默认父类…

如何监控和优化 PostgreSQL 中的连接池使用?

文章目录 一、连接池的基本概念二、监控 PostgreSQL 连接池使用的重要性&#xff08;一&#xff09;性能优化&#xff08;二&#xff09;资源管理&#xff08;三&#xff09;故障排查 三、PostgreSQL 连接池监控指标&#xff08;一&#xff09;活跃连接数&#xff08;二&#x…

数据结构练习

1. 快速排序的非递归是通过栈来实现的&#xff0c;则前序与层次可以通过控制入栈的顺序来实现&#xff0c;因为递归是会一直开辟栈区空间&#xff0c;所以非递归的实现只需要一个栈的大小&#xff0c;而这个大小是小于递归所要的&#xff0c; 非递归与递归的时间复杂度是一样的…