Java:String 类

news2024/11/15 3:45:45

文章目录

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

一、概念

字符串广泛应用 在 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("对象内容一致");
        }
    }
}

运行结果:

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

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

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

相关文章

利用Python进行数据分析PDF下载经典数据分享推荐

本书由Python pandas项目创始人Wes McKinney亲笔撰写,详细介绍利用Python进行操作、处理、清洗和规整数据等方面的具体细节和基本要点。第2版针对Python 3.6进行全面修订和更新,涵盖新版的pandas、NumPy、IPython和Jupyter,并增加大量实际案例…

什么是Common Flash Interface

目录 1. CFI概述 2. CFI的使用小结 3. CFI在车规MCU里有用吗 在看关于ifx的标准flash驱动配置时,无意中瞄到一个注灰的选项: Try to use CFI information to detect Flash Type 之前讲过CFI这个标准,但为何在IFX memtool工具里注灰&#x…

opencv实现人脸检测功能----20240704

opencv实现人脸检测 早在 2017 年 8 月,OpenCV 3.3 正式发布,带来了高度改进的“深度神经网络”(dnn)模块。 该模块支持多种深度学习框架,包括 Caffe、TensorFlow 和 Torch/PyTorch。OpenCV 的官方版本中包含了一个更准确、基于深度学习的人脸检测器, 链接:基于深度学习…

基于springboot+vue+uniapp的贵工程寝室快修小程序

开发语言:Java框架:springbootuniappJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包&#…

人员定位系统的功能,你知道多少呢?

在此前的文章中,说到了人员定位系统用于化工厂定位这一用途来完善工厂管理,但同时,基于人员定位系统的强大功能,该系统的应用范围也要宽范的多,那么,本篇文章就来为大家介绍一下吧。 人员定位系统的功能简介…

maxwell启动报错:Could not find first log file name in binary log index file

出现该问题是因为:maxwell 读取的是 mysql 的 binlog 日志,而配置文件中的两个值与 binlog 的最新值没有保持一致导致 1. 切换到maxwell的库 show master status;记住图片中的 FIle 和 Position 2. 修改maxwell的配置 SELECT * from positions p ;将…

怎样优化 PostgreSQL 中对 XML 数据的存储和查询?

文章目录 一、数据类型选择二、索引优化三、查询优化四、分区策略五、存储参数调整六、示例代码与解释七、性能测试与监控八、数据清理与压缩九、注意事项 在 PostgreSQL 中处理 XML 数据时,为了实现高效的存储和查询,需要采取一系列的优化策略。以下将详…

国外服务器备案主要需要准备什么

在全球化日益加深的今天,许多企业和个人选择将服务器部署在国外,以享受更广泛的用户覆盖、更低廉的运营成本或更灵活的网络环境。然而,不同国家和地区对服务器备案的要求各不相同,但通常而言,进行国外服务器备案主要需…

轻松集成,高效变现:Flat Ads SDK助力开发者轻松跨越广告变现门槛

在当今的移动应用开发领域,广告变现是开发者们普遍关注的重要话题。如何在不影响用户体验的前提下,最大化地实现广告收益,成为了许多开发者面临的挑战。为此,Flat Ads SDK 应运而生,它以“轻松集成,合规守护,高效变现”为核心理念,帮助开发者轻松解决流量变现难题。 一、高效变…

微信小程序的智慧物流平台-计算机毕业设计源码49796

目 录 摘要 1 绪论 1.1 研究背景 1.2 研究意义 1.3研究方法 1.4开发技术 1.4.1 微信开发者工具 1.4.2 Node.JS框架 1.4.3 MySQL数据库 1.5论文结构与章节安排 2系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1 用户登录流程 2.2.2 数据删除流程 2.3 系统功能分…

【基础算法总结】分治—归并

分治—归并 1.排序数组2.交易逆序对的总数3.计算右侧小于当前元素的个数4.翻转对 点赞👍👍收藏🌟🌟关注💖💖 你的支持是对我最大的鼓励,我们一起努力吧!😃😃 1.排序数组 …

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

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

vue3+ts 重复参数提取成方法多处调用以及字段无值时不传字段给后端

参数提取前的写法,此写法值为空的时候也会传空字段给后端 会把无值的空字段传给后端 修改后的写法,不会把没有值的字段传给后端 // 列表和导出需要传给后端的公共参数(加 || undefined即可过滤空字段) const getCurentParam () …

Zabbix 6.0 组件 工作原理和组件

Zabbix组件 C/S架构 服务端:zabbix server(端口10051):zabbix服务端进程,用于接收代理端发来的监控指标数据,配置和管理zabbix应用程序,也是监控系统的告警中心(通过监控项告警触…

伦敦银交易平台价格的突破成不成功?这点很重要!

在伦敦银交易中,当银价出现突破的时候,也正是引起很多投资者关注的时候。一旦银价出现突破,很可能是新行情的开端。但是做过突破交易,有相关经验的朋友会发现,自己在伦敦银交易平台做突破的时候,也并不是每…

两数之和、三数之和-vector双指针题型

末尾有注意点 167. 两数之和 II - 输入有序数组 - 力扣&#xff08;LeetCode&#xff09; 双指针&#xff1a;left、right class Solution { public:vector<int> twoSum(vector<int>& numbers, int target) {int right numbers.size() - 1;int left 0;whi…

Redis 分布式集群方案 Cluster

引言 相比于Codis&#xff0c;Redis Cluster是Redis官方提供的解决方案。相比于Codis的不同&#xff0c;他是去中心化的&#xff0c;如图所示&#xff0c;该集群有三个Redis节点组成&#xff0c;每个节点负责整个集群的一部分数据&#xff0c;每个节点负责的数据多少可能不一样…

AutoCAD二次开发之objectArx开发:专栏内容介绍及目录

1、专栏介绍 1.1 ObjectARX介绍 ObjectARX是AutoDesk公司针对AutoCAD平台上的二次开发而推出的一个开发软件包&#xff0c;它提供了以C为基础的面向对象的开发环境及应用程序接口&#xff0c;能真正快速的访问AutoCAD图形数据库。 与以往的 AutoCAD 二次开发工具 AutoLISP 和A…

怎么样才能为公司申请OV证书?

OV证书&#xff0c;全称为组织验证型SSL证书&#xff08;Organization Validation SSL Certificate&#xff09;&#xff0c;是一种高级别的SSL/TLS证书&#xff0c;用于加密网站通信并验证网站所属组织的合法身份。相比于基本的域名验证型证书&#xff08;DV证书&#xff09;&…

项目收获总结--MyBatis的知识收获

一、概述 最近几天公司项目开发上线完成&#xff0c;做个收获总结吧~ 今天记录MyBatis的收获和提升。 二、获取自动生成的(主)键值 insert 方法总是返回一个 int 值 &#xff0c;这个值代表的是插入的行数。若表的主键id采用自增长策略&#xff0c;自动生成的键值在 insert…