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


    目录

    🐱‍🐉🐱‍🐉

    一、字符串构造

    1、String str = "字符串";

    2、String str = new String("字符串");

    3、String str = new String(new char[]{字符});

    二、字符串比较的方法

    1、==比较

    2、equals

    3、equalsIgnoreCase 

    4、compareTo

    5、compareToIgnoreCase 

    三、字符串查找的方法

    1、字符串里访问第n个字符

     2、字符a第一次出现的位置

    3、从n开始字符a第一次出现的位置

    4、字符串s第一次出现的位置

    5、从n开始字符串s第一次出现的位置 

    6、从后往前开时字符a第一次出现的位置

    7、第n个位置开始从后往前字符a第一次出现的位置 

    8、从后往前字符串s第一次出现的位置

    9、第n个位置开始从后往前字符串s第一次出现的位置

     四、字符串转换方法

    1、数值转字符串

    2、字符串转数字

    3、字符串大小写转换

      1、toUpperCase

      2、toLoewerCase

    4、字符串转字符数组

    5、格式化输出

    五、字符串替换

    1、replace

    2、replaceAll

    3、replaceFirst

    六、字符串拆分

    1、全部拆分

    2、分组拆分

    3、按多个字符拆分

    七、字符串截取

    1、从n开始截取

    2、从n截取到m 


    🐱‍🐉🐱‍🐉

    一、字符串构造

    String类提供了多个构造方法,主要有以下三种

    1、String str = "字符串";

    第一种双引号引起来的字符,先从字符串常量池里面找。如果找到就返回地址,如果没有找到就从字符串常量池里面创建,然后返回新创建对象的地址

    2、String str = new String("字符串");

    第二种字符串构造方法,先从堆上创建一个字符串对象,然后双引号引起来的字符串从字符串常量池里面找,如果找到就返回字符串的地址给该字符串对象的value值,如果没有,就在字符串常量池里创建,然后返回字符串地址

    3、String str = new String(new char[]{字符});

    第三种字符串构造方法,先从堆上创建一个字符串对象,然后创建一个字符数组,然后将这个字符数组拷贝一份后,将拷贝后的字符数组的地址给字符串对象,然后在看字符串常量池里面有么有,有就返回地址,没有就创建然后返回地址

    二、字符串比较的方法

    1、==比较

    这种比较对于引用类型比较的是两个对象的地址

    2、equals

    语法:字符串1.equals(字符串2);

    如果两个字符串相同返回true反之返回false

    3、equalsIgnoreCase 

    与equals使用方法相同,不过区别是equals比较时不会忽略大小写,这个方法则会忽略大小写

    4、compareTo

    语法:字符串1.compareTo(字符串2);

    类似于C语言里面的strcmp,返回值是一个整数

    5、compareToIgnoreCase 

    与前一个不同的是,compareTo比较时不会忽略大小写,而这个方法会忽略大小写

     

    三、字符串查找的方法

    1、字符串里访问第n个字符

    语法: char ch = str.charAt(n);

     2、字符a第一次出现的位置

    语法:int index = str.indexOf(a);

    3、从n开始字符a第一次出现的位置

    语法:int  index = str.index(a,n);

    4、字符串s第一次出现的位置

    语法:int index  = str.indexOf(s); 

    5、从n开始字符串s第一次出现的位置 

    语法:int index = str.indexOf(s,n);

    6、从后往前开时字符a第一次出现的位置

    语法:int index =  str.lastIndexOf(a);

    7、第n个位置开始从后往前字符a第一次出现的位置 

    语法:int index = str.lastIndexOf(a,n);

    8、从后往前字符串s第一次出现的位置

    语法:int index = str.lastIndexOf(s);

    9、第n个位置开始从后往前字符串s第一次出现的位置

    语法: int index = str.lastIndexOf(s,n);

     

     四、字符串转换方法

    1、数值转字符串

    语法:String str = String.valueOf(数值);

    除了整形浮点型数值外,boolean与引用类型也可以转为为字符串

    2、字符串转数字

    语法:int data = Integer.parseInt(str);

              double data = Double.parseDoub(str);

    ……

    如果要将字符串按不同的进制转为数值,只需要在pareInt方法的第二个参数传入对应的进制数即可

    3、字符串大小写转换

      1、toUpperCase

     转大写:String str  = s.toUpperCase();

      2、toLoewerCase

    转小写:String str = s.toLowerCase();

    4、字符串转字符数组

    语法:char[] ch = str.toCharArray();

    5、格式化输出

    语法:String str = String.format("%d-%d-%d",2002,20,20);

     

    在后续输出字符串str时就会以格式进行输出

     

    五、字符串替换

    1、replace

    语法:replace(dest,src)

    dest:将要被替换的

    src:被代替成的

    2、replaceAll

    语法:replaceAll(dest,src)

    与上面的方法相同都是将字符串里的dest全部替换 

    3、replaceFirst

    语法:replaceFirst(dest,src)

    只替换字符串里第一次出现的dest 

    以上字符串替换函数使用时,自身没有改变,而是new了一个新的字符串

     

    六、字符串拆分

    1、全部拆分

    String[] str = s.split(字符):

    2、分组拆分

    String[] str = s.split(字符,要拆几个组);

    3、按多个字符拆分

     String[] str = s.split(字符1|字符2);

     

    如果要按字符'*','+','|‘来拆分,要加上转义字符”\\"

    七、字符串截取

    1、从n开始截取

    str.subString(n);

    2、从n截取到m 

    s.subString(n,m)

    n到m是左闭右开的区间,并且要注意不能越界

     

     

     

  • 相关阅读:
    【BOOST C++ 13 并行编程】(3) Futures和 Promises线程
    图像运算和图像增强八
    使用cpolar优化树莓派上的网页(3)
    【CUDA学习笔记】初识CUDA
    二维多孔介质图像的粒度分布研究(Matlab代码实现)
    Linux操作系统资源(持续更新...)
    在微信小程序中使用 echarts 图片-例 折线图
    自学Python第二十三天- pillow 库,图形处理及绘画
    Java面试题学习-单例模式
    【愚公系列】2022年07月 Tabby集成终端的使用
  • 原文地址:https://blog.csdn.net/qq_61903414/article/details/126557237
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    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号