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); // true
    System.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); // true
    boolean result2 = s1.equalsIgnoreCase(s3); // true
    System.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

        // 代码中再定义一个字符串 abc
        String 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总结

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

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

相关文章

fastadmin 后台插件制作方法

目录 一&#xff1a;开发流程 二&#xff1a;开发过程 &#xff08;一&#xff09;&#xff1a;后台功能开发 &#xff08;二&#xff09;&#xff1a;功能打包到插件目录 &#xff08;三&#xff09;&#xff1a;打包插件 &#xff08;四&#xff09;&#xff1a;安装插件…

视频自学笔记

一、视频技术基本框架 二、视频信号分类 2.1信号形式 2.1.1模拟视频 模拟视频是指由连续的模拟信号组成的视频图像&#xff0c;以前所接触的电影、电视都是模拟信号&#xff0c;之所以将它们称为模拟信号&#xff0c;是因为它们模拟了表示声音、图像信息的物理量。摄像机是获…

Docker单机网络:解锁本地开发环境的无限潜能

作者简介&#xff1a;我是团团儿&#xff0c;是一名专注于云计算领域的专业创作者&#xff0c;感谢大家的关注 座右铭&#xff1a; 云端筑梦&#xff0c;数据为翼&#xff0c;探索无限可能&#xff0c;引领云计算新纪元 个人主页&#xff1a;团儿.-CSDN博客 目录 前言&#…

Golang 八股(持续补充...)

目录 进程、线程、协程 Go语言——垃圾回收 GC的触发条件 GC调优 GMP调度和CSP模型 Groutine的切换时机 Goroutine调度原理 Goroutine的抢占式调度 Context结构原理 Context原理 Golang内存分配机制 竞态、内存逃逸 golang内存对齐机制 golang中new和make的区别&a…

手机中的核心SOC是什么?

大家好&#xff0c;我是山羊君Goat。 常常听说CPU&#xff0c;中央处理器等等的&#xff0c;它是一个电脑或单片机系统的核心&#xff0c;但是对于SOC可能相比于CPU了解的人没有那么广泛。 所以SOC是什么&#xff1f; SOC全称是System on Chip&#xff0c;就是片上系统&#…

绿虫光伏设计系统:清洁能源的未来

煤炭、石油、天然气是我们现在依赖的重要能源&#xff0c;但这些能源难以再生&#xff0c;而且开采过程中会产生污染。太阳能发电作为清洁能源的一种重要形式&#xff0c;受到了越来越多的关注。绿虫光伏发电系统&#xff0c;不仅考虑到其发电效率&#xff0c;还可以考虑其经济…

R语言 | ComplexHeatmap 画注释若干基因的热图 //todo

一般顺序&#xff1a; 先用 pheatmap 聚类再用 ComplexHeatmap 做可视化&#xff1a;添加顶部、左侧聚类颜色&#xff0c;显示若干代表性基因 genec("Gene18", "Gene19", "Gene7","Gene3", "Gene9", "Gene15") …

springmvc的简介

SpringMVC的介绍与第一个程序的开发步骤 1. 介绍 SpringMVC是一个实现了MVC架构模式的Web框架&#xff0c;底层基于Servlet实现。 SpringMVC已经将MVC架构模式实现了&#xff0c;因此只要我们是基于SpringMVC框架写代码&#xff0c;编写的程序就是符合MVC架构模式的。&#x…

Java Web 4 Maven

本文详细介绍了Maven的用途&#xff0c;包括依赖管理、项目结构统一和构建流程标准化&#xff1b;然后讲解了Maven的安装、IDEA中的集成以及依赖管理的核心概念。 1 什么是Maven&#xff1f; 什么是apache&#xff1f; 2 Maven的作用 &#xff08;1&#xff09;方便依赖管理 有…

基于SpringBoot+Vue的宠物咖啡馆系统-无偿分享 (附源码+LW+调试)

目录 1. 项目技术 2. 功能菜单 3. 部分功能截图 4. 研究背景 5. 研究目的 6. 可行性分析 6.1 技术可行性 6.2 经济可行性 6.3 操作可行性 7. 系统设计 7.1 概述 7.2 系统流程和逻辑 7.3 系统结构 8. 数据库设计 8.1 数据库ER图 &#xff08;1&#xff09;宠物订…

flex: 1 display:flex 导致的宽度失效问题

flex: 1 & display:flex 导致的宽度失效问题 问题复现 有这样的一个业务场景&#xff0c;详情项每行三项分别占33%宽度&#xff0c;每项有label字数不固定所以宽度不固定&#xff0c;还有content 占满标签剩余宽度&#xff0c;文字过多显示省略号&#xff0c; 鼠标划入展示…

利用tablesaw库简化表格数据分析

tableaw是处理表格数据的优秀工具。它提供了一组强大而灵活的功能&#xff0c;使操作、分析和可视化数据表变得容易。在这篇博文中&#xff0c;我们将介绍tableaw的主要特性、如何使用这些特性&#xff0c;以及如何使用tableaw处理表格数据的一些示例。 tablesaw简介 tableaw…

【看海的算法日记✨优选篇✨】第二回:流动之窗,探索算法的优雅之道

&#x1f308; 个人主页&#xff1a;谁在夜里看海. &#x1f525; 个人专栏&#xff1a;《C系列》《Linux系列》《算法系列》 ⛰️ 道阻且长&#xff0c;行则将至 目录 一、算法思想 双指针 滑动窗口 二、具体运用 1.⻓度最⼩的⼦数组 算法思路 算法流程 代码 2.最⼤…

MicroBlaze软核开发(一):Hello World

实现功能&#xff1a;使用 MicroBlaze软核 串口打印 Hello World Vivado版本&#xff1a;2018.3 目录 MicroBlaze介绍 vivado部分&#xff1a; 一、新建工程 二、配置MicroBlaze 三、添加Uart串口IP 四、生成HDL文件编译 SDK部分&#xff1a; 一、导出硬件启动SDK 二、…

camera驱动开发(初学)

camera驱动开发 初学camera驱动开发 随笔记一下顺便整理一下初学的学习路线。内容来源于各大网站&#xff0c;大自然的搬运工。 一、camera基本概念 ①三路电压 camera包含的三路电压为模拟电压&#xff08;VCAMA&#xff09;&#xff0c;数字电压&#xff08;VCAMD&#x…

在Ubuntu22.04.5上安装Docker-CE

文章目录 1. 查看Ubuntu版本2. 安装Docker-CE2.1 安装必要的系统工具2.2 信任Docker的GPG公钥2.3 写入软件源信息2.4 安装Docker相关组件2.5 安装指定版本Docker-CE2.5.1 查找Docker-CE的版本2.5.2 安装指定版本Docker-CE 3. 启动与使用Docker3.1 启动Docker服务3.2 查看Docker…

C# 编程效率提升指南:掌握算数运算、循环与方法封装

在这篇文章中将带你深入探索C#中的几大关键技术点&#xff0c;从如何精准进行算数运算、灵活运用循环控制结构&#xff0c;到通过方法封装提升代码的复用性&#xff0c;再到正确使用可空类型避免潜在的空值引用异常&#xff0c;这些概念和技巧无一不是编写清晰、高效、健壮代码…

常见Linux命令(详解)

文章目录 常见Linux命令文件目录类命令pwd 打印当前目录的绝对路径ls 列出目录内容cd 切换路径mkdir 建立目录rmdir 删除目录touch 创建空文件cp 复制文件或目录rm 移除文件或者目录mv 移动文件与目录或重命名cat 查看文件内容more 文件分屏查看器less 分屏显示文件内容head 显…

html+css网页设计 旅游 马林旅行社3个页面

htmlcss网页设计 旅游 马林旅行社3个页面 网页作品代码简单&#xff0c;可使用任意HTML辑软件&#xff08;如&#xff1a;Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行及修改编辑等操作&#xff09;。 获取源码 1&#…

【目标跟踪】AntiUAV600数据集详细介绍

AntiUAV600数据集的提出是为了适应真实场景&#xff0c;即无人机可能会随时随地出现和消失。目前提出的Anti-UAV任务都只是将其看做与跟踪其他目标一样的任务&#xff0c;没有结合现实情况考虑。 论文链接&#xff1a;https://arxiv.org/pdf/2306.15767https://arxiv.org/pdf/…