Java的Stirng、StringBuilder、StringJoiner

黑马程序员Java个人笔记

目录

字符串比较

== 比较

boolean equals

 boolean equalsIgnoreCase

键盘录入和定义的字符串的比较

StringBuilder

 打印

​编辑

添加元素 

反转 

获取长度 

toString

练习

对称字符串

拼接字符串

StringJoiner

概述

​编辑

构造方法 

只有间隔符号 

 间隔符号、开始符号、结束符号

成员方法 

length 

String、StringBuilder、StringJoiner总结


 

字符串比较

== 比较

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

boolean equals

  • 完全一样,结果才是 true,否则为 false
public class Demo1 {public static void main(String[] args) {String s1 = new String("abc");String s2 = "abc";String s3 = "Abc";boolean result1 = s1.equals(s2);boolean result2 = s1.equals(s3);System.out.println(result1); // trueSystem.out.println(result2); // false}
}

 boolean equalsIgnoreCase

  • 忽略大小写的比较
public class Demo1 {public static void main(String[] args) {String s1 = new String("abc");String s2 = "abc";String s3 = "Abc";boolean result1 = s1.equalsIgnoreCase(s2); // trueboolean result2 = s1.equalsIgnoreCase(s3); // trueSystem.out.println(result1);System.out.println(result2);}
}

键盘录入和定义的字符串的比较

  • 结果为false
import java.util.Scanner;public class Demo1 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请输入一个字符串:");String str1 = sc.next(); // 输入abc// 代码中再定义一个字符串 abcString str2 = "abc";// 用 == 比较System.out.println(str1 == str2); // false}
}

StringBuilder

  • StringBuilder 可以看成一个容器,创建之后里面的内容是可变的
  • 作用:提高字符串的操作效率
    • 只有一个StringBuilder对象,在拼接过程中,不会产生没有用的字符串
  • 使用场景
    • 字符串拼接
    • 字符串反转

 打印

  • 因为 StringBuilder 是 Java 已经写好的类
  • java 在底层对它做了一些特殊处理
  • 打印对象不是地址值,而是属性值,也就是容器里的内容
    • 如果用空参构造来创建 StringBuilder 容器对象,那这个容器里面一开始是空的


添加元素 

反转 

  • 字符串本身是不能发生变化的,只有返回值才是截取、替换等之后的结果
  • 在 StringBuilder 中的内容,是可以发生变化的
    • reverse(); 之后,容器里的内容直接反转了

获取长度 

toString

  • sb 是 StringBuilder 类型的,只是个容器,来帮助我们操作字符串的工具
  • 用 toString 方法把它变成字符串


  • 再把 StringBuilder 变回字符串 
public class Demo1 {public static void main(String[] args) {StringBuilder sb = new StringBuilder();sb.append("aaa");sb.append("bbb");sb.append("ccc");sb.append("ddd");System.out.println(sb); // aaabbbcccddd// 再把 StringBuilder 变回字符串String str = sb.toString();System.out.println(str); // aaabbbcccddd}
}

练习

对称字符串

import java.util.Scanner;
public class Demo1 {public static void main(String[] args) {// 键盘录入一个字符串Scanner sc = new Scanner(System.in);System.out.println("请输入一个字符串");String str = sc.next();// 反转键盘录入的字符串String res = new StringBuilder().append(str).reverse().toString();// 比较if (str.equals(res)) {System.out.println("当前字符串是对称字符串");} else {System.out.println("当前字符串不是对称字符串");}}
}

拼接字符串

public class Demo1 {public static void main(String[] args) {// 定义数组int[] arr = {1, 2, 3};// 调用方法把数组变成字符串String str = arrToString(arr);System.out.println(str);}public static String arrToString(int[] arr){StringBuilder sb = new StringBuilder();sb.append("[");for(int i = 0; i < arr.length; i++){if(i == arr.length-1){sb.append(arr[i]);} else {sb.append(arr[i]).append(", ");}}sb.append("]");return sb.toString();}
}

StringJoiner

概述

构造方法 

只有间隔符号 

import java.util.StringJoiner;
public class Demo1 {public static void main(String[] args) {// 创建一个对象,并指定间隔符号。开始符号、前缀符号StringJoiner sj = new StringJoiner(",", "[", "]");// 添加元素sj.add("aaa").add("bbb").add("ccc");// 打印System.out.println(sj); // [aaa,bbb,ccc]}
}

 间隔符号、开始符号、结束符号

import java.util.StringJoiner;
public class Demo1 {public static void main(String[] args) {// 创建一个对象,并指定间隔符号。开始符号、前缀符号StringJoiner sj = new StringJoiner(",", "[", "]");// 添加元素sj.add("aaa").add("bbb").add("ccc");// 打印System.out.println(sj); // [aaa,bbb,ccc]}
}

成员方法 

length 

所有字符的总个数

import java.util.StringJoiner;
public class Demo1 {public static void main(String[] args) {// 创建一个对象,并指定间隔符号、开始符号、结束符号StringJoiner sj = new StringJoiner(",", "[", "]");// 添加元素sj.add("aaa").add("bbb").add("ccc");int len = sj.length(); System.out.println(len); // 13// 打印System.out.println(sj); // [aaa,bbb,ccc],包括符号,一共13个字符}
}

String、StringBuilder、StringJoiner总结

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

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

相关文章

elasticsearch(三)

文章目录 1.数据聚合1.1.聚合的种类1.2.DSL实现聚合1.2.1.Bucket聚合语法1.2.2.聚合结果排序1.2.3.限定聚合范围1.2.4.Metric聚合语法 1.3.RestAPI实现聚合1.3.1.API语法1.3.2.业务需求1.3.3.业务实现 2.自动补全2.1.拼音分词器2.2.自定义分词器2.3.自动补全查询2.4.实现酒店搜…

Python_Flask03

这篇文章主要介绍的是数据库的增删改查操作&#xff0c;无多余好说的。 from flask import Flask from flask_sqlalchemy import SQLAlchemy from sqlalchemy import text from flask_migrate import Migrateapp Flask(__name__)# 本地基础信息的主机名 HOSTNAME "127.0…

Hive分区值的插入

对于Hive分区表&#xff0c;在我们插入数据的时候需要指定对应的分区值&#xff0c;而这里就会涉及很多种情况。比如静态分区插入、动态分区插入、提供的分区值和分区字段类型不一致&#xff0c;或者提供的分区值是NULL的情况&#xff0c;下面我们依次来展现下不同情况下的表现…

安达发|工业镜头APS高级排产的关键约束

工业镜头生产具有其特定的复杂性&#xff0c;如技术要求高、生产周期长、工序多等特点。在应用APS系统进行高级排产时&#xff0c;需要考虑以下关键约束&#xff1a; 1. 技术与质量约束 - 精度要求&#xff1a;工业镜头对精度的要求极高&#xff0c;这直接影响到排产计划中机加…

【SKFramework框架核心模块】3-9、资源模块

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享QQ群&#xff1a;398291828小红书小破站 大家好&#xff0c;我是佛系工程师☆恬静的小魔龙☆&#xff0c;不定时更新Unity开发技巧&#xff0c;觉得有用记得一键三连哦。 一、前言 【Unity3D框架】SKFramework框架完全教程《全…

Swing中密码框组件

一、介绍 密码框&#xff08;JPasswordField&#xff09;与文本框的定义和用法基本相同&#xff0c;唯一不同的是密码框将用户输入的字符串以某种符号进行加密。密码框对象是通过javax.swing.JPasswordField类创建的。 二、常用构造方法 1、public JPasswordField() 2、pub…

SpringMVC ——(1)

1.SpringMVC请求流程 1.1 SpringMVC请求处理流程分析 Spring MVC框架也是⼀个基于请求驱动的Web框架&#xff0c;并且使⽤了前端控制器模式&#xff08;是⽤来提供⼀个集中的请求处理机制&#xff0c;所有的请求都将由⼀个单⼀的处理程序处理来进⾏设计&#xff0c;再根据请求…

【英一】1998年

阅读1 suffering. 苦难at the mercy of. 完全受...的支配do ones bidding. 服从某人threaten to. 可能...&#xff08;发生不好的事情&#xff09;do more harm than good. 弊大于利strive to. 争取&#xff0c;努力assert. 主张cement. 巩固bid for. (尤指许下诺言)企图获得&…

BT.1120视频传输协议标准介绍

1.BT.1120 BT.656 协议主要是针对 PAL、NTSC下的标清视频。随着高清视频的发展的需要&#xff0c;又推出了 BT.1120 标准&#xff0c;它与 BT656 有许多类似的地方&#xff0c;不同点在于时钟频率更高了&#xff0c;更加适合高清视频的传输&#xff0c;隔行传输和逐行传输兼备。…

RabbitMQ学习-Eleven

SpringBoot中RabbitMQ的消息确认和Return机制 1.再application.yml文件中开启消息确认机制和return机制 spring:rabbitmq:publisher-confirm-type: simplepublisher-returns: true 2.创建confirm和return监听 // MsgConfirmAndReturn.java 中的代码片段Component public cla…

GAMES101 完结篇(笔记和作业)

写在前面 我已经把笔记和作业代码放在了GitHub上&#xff0c;欢迎访问GAMES101笔记及作业 (github.com)&#xff0c;如果对你有帮助&#xff0c;欢迎fork or star 下面我想简单介绍一下这里面的东西 Homework Homework文件夹里有0~8的作业框架&#xff0c;参考的其他大佬的代…

修改mobaxterm字体为全绿色

修改前&#xff1a; 修改步骤步骤&#xff1a; 红色方框里面的颜色都改为绿色&#xff0c;然后点击OK 重启mobaxterm即可&#xff1a;

vue+mars3d叠加展示arcgis动态服务

数据格式&#xff1a;使用arcgis发布的动态服务 叠加和移除arcgis服务图层的方法 //加载arcgis地图服务function arcgisServer(i,d,m,p){i[d.data] new mars3d.layer.ArcGisLayer({name:d.label,url:p,flyTo: true})m.addLayer(i[d.data])}//移除arcgis服务范围线function rem…

模型案例:| 手机识别模型!

导读 2023年以ChatGPT为代表的大语言模型横空出世&#xff0c;它的出现标志着自然语言处理领域取得了重大突破。它在文本生成、对话系统和语言理解等方面展现出了强大的能力&#xff0c;为人工智能技术的发展开辟了新的可能性。同时&#xff0c;人工智能技术正在进入各种应用领…

241205_给自己的应用加上语音助手功能

241205_给自己的应用加上语音助手功能 前面我们自己做了一个网易云音乐&#xff0c;但每次都要去点点点显得有点麻烦&#xff0c;所以我就考虑添加一些语音助手的功能。 其实当前在日常windows使用中&#xff0c;我觉得也就音乐播放需要一个语音助手交互&#xff0c;其他的功…

Navicat连接服务器MySQL

Navicat连接服务器MySQL 1. Navicat连接服务器MySQL2. 如何查看MySQL用户名和密码3. 修改MySQL登录密码4. 安装MySQL(Centos7)遇到错误和问题 1. error 1045 (28000): access denied for user ‘root’‘localhost’ (using password:yes) 1. Navicat连接服务器MySQL 选择数据…

得物新一代可观测性架构:海量数据下的存算分离设计与实践

一、引言 得物作为全球领先的潮流网购社区&#xff0c;日益增长的用户和数据带来了巨大的技术挑战。当前&#xff0c;得物的可观测性平台每天生成数PB级Trace数据和数万亿条Span记录&#xff0c;要求平台具备高效的实时处理能力和低成本的数据存储解决方案。 传统的存算一体架…

​ 基于51单片机的智能公交车报站系统GPS定位语音播报智能安全检测人数统计

功能介绍 以51单片机为控制核心.LCD12864可显示当前年月日&#xff0c;星期&#xff0c;时间&#xff0c; 当前站名&#xff0c;经纬度&#xff0c;是否连接GPS&#xff0c;自动/手动模式&#xff0c;自带GPS定位&#xff0c;可实时显示经纬度&#xff1b;通过DS1302时钟芯片…

Gitee配置SSH公钥

采用SSH协议同步Git仓库代码的好处就是高效。在配置好SSH公钥后&#xff0c;不需要每次操作都要输入用户名和密码&#xff08;主要针对命令行来说&#xff09;。 以我个人项目为例。 生成 SSH 公钥 1. 通过命令 ssh-keygen 生成 SSH Key&#xff1a; ssh-keygen -t ed25519…

CV(2)-插值和卷积

前言 仅记录学习过程&#xff0c;有问题欢迎讨论 看看年前可以学到哪。 频率&#xff1a; 灰度值变化程度的指标&#xff0c;是灰度再平面上的梯度幅值: 幅值&#xff1a; 是在一个周期内&#xff0c;交流电瞬时出现的最大绝对值&#xff0c;也是一个正弦波&#xff0c;波…