码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Java的String类


    学习目录

    • 认识String类
        • String类常用方法
        • 字符串对象的比较
            • 字符串比较是否相等:
            • 字符串比较大小
            • 字符串忽略大小写比较大小
        • 字符串查找
            • charAt 使用
            • indexof 使用
            • lastIndexOf 使用
        • 字符串转化
            • 字符串和数值转换
            • 字符串大小写的转换
            • 字符串转数组
            • 格式化
        • 字符串替换
        • 字符串拆分
        • 字符串截取

    认识String类

    在Java中 String 是属于引用数据类型,用 String 类创建的变量不会存储字符串本身,而是存放字符串所在的地址
    String 类的内容是使用用 “ ”引用的,其" " 里的内容是属于常量
    String 类是在 java.lang 包底下,里面包含了字符串的值和实现字符串相关操作的一些方法
    String 类是不能被继承的,因为它是被 final 所修饰

    在 String 类的源码里一个对象都有二个成员变量,分别是:value[ ]和 hash
    value[ ] 是一个数组类型

    在这里插入图片描述

    String类常用方法

    String 类 提供的构造方法非常多,但常用的就下面三种:

    public static void main(String[] args) {
       
            // 使用常量字符串创建
            String n = "hello";
            System.out.println(n);
    
            // 直接newString对象
            String n2 = new String("abc");
            System.out.println(n2);
    
            //使用字符数组进行构造
            char[] arr = {
       'c','h','i','n','a'};
            String n3 = new String(arr);//把字符数组装化成字符串
            System.out.println(n3);
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    在 Java 求字符串长度是使用对象 . length()
    例如:

     System.out.println(n.length());
     System.out.println("hello".length());
    
    • 1
    • 2

    字符串对象的比较

    字符串是属于引用类型,不能使用 == 来判断是否相等
    例如:

    public static void main(String[] args) {
       
           // 对于基本类型,可以使用 == 来判断二个变量是否相等
            int a = 10;
            int b = 10;
            System.out.println(a == b);  
    
            // 对于引用类型变量,是不能使用 == 比较两个引用变量,它们比较的是地址,不是内容
            String array1 = new String("hello");
            String array2 = new String("hello");
            String n = new String("world");
            n = array1;
    
            System.out.println(array1 == array2);
            System.out.println(n == array1);
    
      }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    结果:
    在这里插入图片描述

    字符串比较是否相等:

    比较相等是使用 equals 来比较内容
    在 String类里重写了父类Object中equals方法,Object中的 equals默认按照==比较
    String重写equals方法后,按照内容进行比较

    public static void main(String[] args) {
       
          String array1 = new String("hello");
          String array2 = new String("hello");
          System.out.println(array1.equals(array2));
     } 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    字符串比较大小

    比较二个字符串的大小使用的是compareTo
    compareTo 的返回值是整数,需要用整形变量来接收
    返回大于1 的数字代表 变量1 大于 变量2
    返回0 代表 二个字符串相等
    返回小于0 代表 变量1 小于 变量2
    例如:

    public static void main(String
    • 相关阅读:
      MySQL索引
      2023版 STM32实战8 独立看门狗(IWDG)
      Java反序列化6-Fastjson JdbcRowSetImpl 链及后续漏洞分析
      NR小区搜索(五)S准则
      STM32 - 笔记4
      【✨十五天搞定电工基础】一阶电路的暂态分析
      Spring 事务编程实践
      分布式锁开发
      《论文阅读》Controllable Abstractive Dialogue Summarization with Sketch Supervision
      简单SQL与单行函数
    • 原文地址:https://blog.csdn.net/m0_66483195/article/details/126801847
    • 最新文章
    • 沪漂五周年了:我越来越迷茫了
      Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
      MySQL-Seconds_behind_master的精度误差
      [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
      AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
      Agent OS :五种驯服不确定性的范式
      PortSwigger SQL注入LAB11
      数据库即时编译JIT
      [Begin]AI Learn Data Day 0
      深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
    • 热门文章
    • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
      奉劝各位学弟学妹们,该打造你的技术影响力了!
      五年了,我在 CSDN 的两个一百万。
      Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
      面试官都震惊,你这网络基础可以啊!
      你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
      心情不好的时候,用 Python 画棵樱花树送给自己吧
      通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
      13 万字 C 语言从入门到精通保姆级教程2021 年版
      10行代码集2000张美女图,Python爬虫120例,再上征途
    小工具 小游戏
    Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

    京公网安备 11010502049817号