Java学习——String

2023-11-04

在上一篇我们讲到了一个必要重要的知识点,那就是Java中的类和对象,我们可以点击下面的链接来进行复习。

CSDNJava学习——类和对象(上)_AlwaysBeMyself的博客-CSDN博客CSDN

今天我们来讲下一个知识点,那就是Java中的String字符串。

目录

 

一、获取键盘录入的字符串数据

1.创建对象

2.接收数据

3.输出结果

二、String

1.String概述

字符串的特点

2.String构造方法

3.String对象特点

4.字符串比较

代码示例

三、结束语


一、获取键盘录入的字符串数据

我们可以通过public String nextLine();来获取键盘录入的字符串数据。它可以分为3个步骤。

  1. 创建对象
  2. 接收数据
  3. 输出结果

1.创建对象

Scanner sc = new Scanner(System.in);

2.接收数据

String line = sc.nextLine();

3.输出结果

System.out.println("line:" + line);

这样我们就可以实现字符串的接收和输出。

二、String

1.String概述

String类在java.lang包下,所以使用的时候不需要导包

String类代表字符串,Java程序中的所有字符串文字(包括"abc")都被实现为此类的实例,也就是说,Java程序中的所有双引号字符串,都是String类的对象。

字符串的特点

  • 字符串不可变,它们的值在创建后不能被更改
  • 虽然String的值不能更改,但是它们可以共享
  • 字符串效果上相当于字符数组(char[]),但是底层原理是字节数组(byte[])

2.String构造方法

下面通过一个表格来讲解String的几种构造方法。

方法名 说明
public String() 创建一个空白字符串对象,不含有任何内容
public String(char[] chs) 根据字符数组内容,来创建字符串对象
public String(byte[] bys) 根据字节数组内容,来创建字符串对象
String s = "abc"; 直接赋值的方式创建字符串对象,内容就是abc

接下来我们通过代码来实现上面的几种构造方法。

1.public String():创建一个空白字符串对象,不含有任何内容

String s1 = new String();
System.out.println("s1:" + s1);

2.public String(char[] chs):根据字符数组内容,来创建字符串对象

char[] chs = {'a', 'b', 'c'};
String s2 = new String(chs);
System.out.println("s2:" + s2);

 3.public String(byte[] bys):根据字节数组内容,来创建字符串对象

byte[] bys = {97, 98, 99};
String s3 = new String(bys);
System.out.println("s3:" + s3);

4.String s = "abc"; 直接赋值的方式创建字符串对象,内容就是abc(推荐

String s4 = "abc";
System.out.println("s4:" + s4);

3.String对象特点

1)通过new创建的字符串对象,每一次new都会申请一个内存空间,虽然内容相同,但地址值不同

char[] chs = {'a', 'b', 'c'};

String s1 = new String(chs);

String s2 = new String(chs);

上面的代码中,JVM会首先创建一个字符数组,然后每一次new的时候都会有一个新地址,只不过s1和s2参考的字符串内容是相同的。

2)以""方式给出的字符串,只要字符序列相同(顺序和大小写),无论在程序代码中出现几次,JVM都只会建立一个String对象,并在字符串池中维护。

String s3 = "abc";

String s4 = "abc";

在上面代码中,针对第一行代码,JVM会建立一个String对象放在字符串池中,并给s3参考;第二行则让s4直接参考字符串池中的String对象,也就是说它们本质上是一个对象。

4.字符串比较

使用 == 进行比较

  • 基本类型:比较的是数据值是否相同
  • 引用类型:比较的是地址值是否相同

字符串是对象,它比较内容是否相同,是通过一个方法来实现的,这个方法叫:equals()

  • public boolean equals(Object anObject):将此字符串与指定对象进行比。由于我们比较的是字符串对象,所以参数直接传递一个字符串

代码示例

我们分别用构造方法的方式和直接赋值方法的方式得到对象。

//构造方法的方式得到对象
char[] chs = {'a', 'b', 'c'};
String s1 = new String(chs);
String s2 = new String(chs);

//直接赋值的方式得到对象
String s3 = "abc";
String s4 = "abc";

 比较字符串对象地址是否相同。

System.out.println(s1 == s2);
System.out.println(s1 == s3);
System.out.println(s3 == s4);

根据前面所学的String对象特点,我们不难猜到输出结果应为:

false

false

true

比较字符串内容是否相同。

System.out.println(s1.equals(s2));
System.out.println(s1.equals(s3));
System.out.println(s3.equals(s4));

根据前面所学的字符串比较,这个结果应为:

true

true

true

三、结束语

到这里,关于Java中的String相关内容我们就讲完了,在这一篇中,我们主要讲到了如何接收和输出键盘录入的字符串数据,以及String中的构造方法和如何使用equals()方法对字符串内容进行比较。

创作不易,期待你的一键三连

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java学习——String 的相关文章

随机推荐

  • 数据库MySQL-索引(含常见面试题)

    目录 一 什么是索引 二 索引的作用 三 索引优缺点及场景 1 优点 2 缺点 3 使用场景 4 注意事项 四 索引的使用 1 索引分类 2 查看索引 3 创建索引 重点 4 索引和约束的区别 容易混淆 五 索引实现原理 索引失效 2 实现
  • Python——queue

    Queue Queue是python标准库中的线程安全的队列 FIFO 实现 提供了一个适用于多线程编程的先进先出的数据结构 即队列 用来在生产者和消费者线程之间的信息传递 基本FIFO队列 class Queue Queue maxsiz
  • C#设计模式——单例模式(Singleton Pattern)

    目录 一 概述 1 基础 二 实现 1 单线程 2 解决 多线程情况下 解决方案一 Sleep 解决方案二 加锁 三 扩展 一 概述 单例模式 gt 创建型设计模式 定义 保证一个类只有一个实例 并提供一个访问它的全局访问点 在第一个使用者
  • CentOS 6.5开启DHCP服务

    CentOS 6 5开启DHCP服务 安装dhcp yum install dhcp 配置Vmware虚拟网络编辑器 选择VMnet1网卡 选择 仅主机模式 取消使用本地DHCP服务 并设置子网IP与子网掩码 设置完点击 应用 设置Cent
  • 互联网未来30年发展的大趋势,专家:竞争会更激烈!

    未来互联网发展肯定是越来越快 越来越与各行业紧密融合 因此我们必须跟上趋势 顺着风向前行 互联网大佬马云曾说过 在互联网上失败一定是自己造成的 要不是脑子发热 要不就是脑子不热了 太冷了 专家分析互联网未来30年发展的10大趋势 1 政府推
  • Win11 21H2 22000.2124

    Win11 21H2 22000 2124是最新推出的非安全发布预览版更新 主要解决了一个影响桌面虚拟键盘的问题 该问题导致在锁定电脑后无法打开桌面虚拟键盘 改进 这一非安全性更新包括质量改进 当你安装这个kb时 新的 这一更新为微软维护者
  • VMware 下的CentOS6.7 虚拟机与Windows7通信

    在有网络的情况下 VMware 虚拟机使用桥接模式 Bridged 和NAT方式 会自动通信 但是在没有网络的情况下怎么办呢 对 是的 使用host only模式 如何设置呢 注 将Windows上的虚拟网卡改成跟Linux上的网卡在同一网
  • 将本地jar包打包到本地仓库和上传到私服

    1 本地jar打包到本地仓库 mvn install install file DgroupId 自定义的groupID DartifactId 自定义的artifactid Dversion 自定义版本号 Dpackaging jar D
  • 【网络编程】深入理解TCP协议一(三次握手四次挥手、标记位、确认应答机制、超时重传机制)

    TCP协议 1 三次握手四次挥手 2 TCP协议段格式 3 标记位介绍 4 确认应答机制 5 超时重传机制 1 三次握手四次挥手 当客户端发起连接请求时 SYN需要被设置位1 告诉服务器客户端希望建立一个链接 服务器收到响应之后会回复 SY
  • VUE项目中引入JS文件的几种方法

    在开发Vue项目的时候 有时需要使用一些非ES6格式的没有export的js库 可以有如下方法实现 1 在index html页面使用script标签引入 当然也可以使用cdn的地址 这样引入后的内容是全局的 可以在所有地方使用
  • 《区块链助力粤港澳大湾区一体化发展报告(2022)》发布

    7月19日 中国 深圳 综合开发研究院主办的 数 链 大湾区 区块链助力粤港澳大湾区一体化发展报告 2022 发布会在深圳举行 报告提出 以区块链为代表的数字技术在破解粤港澳大湾区制度差异坚冰 支撑实体经济跨越和赋能社会治理创新等方面能够发
  • Mybatis对数据库数据的查询

    简单类型的映射 返回的是简单基本类型 接口中的定义 int getAdminCount 返回数据库总共还几条数据 xml中具体的实现
  • 解决Android App启动页背景图片拉伸变形问题

    为什么80 的码农都做不了架构师 gt gt gt 最近在开发的时候 在个别手机上遇到APP启动页背景图片被拉伸的情况 不多说 直接上图 然而我设置的背景图片是长这样 解决方法很简单 就是将主题中的单一背景图片以drawable的方式实现
  • SpringBoot世上最简洁的概况说明

    转自 SpringBoot世上最简洁的概况说明 下文笔者讲述SpringBoot的简介说明 如下所示 SpringBoot简介 SpringBoot是一个基于Spring框架开发的一个服务框架 使用SpringBoot可简化配置 达到开箱即
  • 从视频中提取音频数据,然后应用傅里叶对音频降噪(python)

    视频准备 QQ有热键 然后随便打开一个视频网站进行录屏 我选择B站 从视频中提取音频 需要安装包moviepy pip install moviepy 提取代码 from moviepy editor import video VideoF
  • Tomcat 目录列表···webloigc 目录列表···Weblogic修改端口号

    Tomcat web xml
  • PyCharm专业版破解

    0x01 下载JetbrainsCrack的jar包 下载链接 链接 百度云链接 提取码 8u4c 0x02 把JetbrainsCrack的jar包放入pycharm文件下的bin目录中 0x03 加上必要的文件代码 在bin目录下使用记
  • 题11:最短摘要的生成

    题目 Alibaba笔试题 给定一段产品的英文描述 包含M个英文单词 每个英文单词以空格分隔 无其他标点符号 再给定N个英文单词关键字 请说明思路并编程实现方法 String extractSurmary String descriptio
  • crout分解计算例题_化学方程式计算你真学会了吗?

    先看看视频 听听姚老师教的计算步骤吧 例题1 加热分解6 3g高锰酸钾 可以得到多少克氧气 分析 这道题是已知反应物的质量来求生成物的质量 即已知原料的质量求产品的质量 我们一起来看课本中的解题步骤 解 设加热分解6 3g高锰酸钾 可以得到
  • Java学习——String

    在上一篇我们讲到了一个必要重要的知识点 那就是Java中的类和对象 我们可以点击下面的链接来进行复习 CSDNJava学习 类和对象 上 AlwaysBeMyself的博客 CSDN博客CSDN 今天我们来讲下一个知识点 那就是Java中的