【String类的常用方法】

news2024/11/25 22:49:51

文章目录

  • 字符串构造
  • String对象的比较
  • 字符串查找
    • charAt
    • indexof
  • 转化
    • 1. 数值和字符串转化
    • 2.大小写转换 toUpperCase toLowerCase
    • 3.字符串转数组 toCharArray
    • 4.数组转字符串
    • 5.格式化 format
  • 字符串替换
    • 替换所有的指定内容
    • 替换首个内容
  • 字符串拆分
    • 以空格拆分
    • 特殊字符拆分
    • 多个分隔符拆分
  • 字符串的截取
    • 截取部分内容
    • 从指定索引截取到结尾
  • 其他操作
    • 去掉字符串中的左右空格,保留中间空格


字符串构造

public class Test {
    public static void main(String[] args) {

        String str = "hello";
        System.out.println(str);

        String str2 = new String("hehehe");
        System.out.println(str2);

        char[] array = {'a','b','c'};
        String str3 = new String(array);
        System.out.println(str3);
    }
}
public class Test {
    public static void main(String[] args) {
        String s1 = new String("hello");
        String s2 = new String("world");
        String s3 = s1;
        System.out.println(s3);

        String s4 = "";//存储0
        System.out.println(s4.length());
        System.out.println(s4.isEmpty());

        String s5 = null;//不存任何数
        System.out.println(s5.length());
        System.out.println(s5.isEmpty());
    }
  1. String是引用类型,内部并不存储字符串本身,
    在这里插入图片描述

String对象的比较

1.==
2. equals
3.compareTo
4.compareToIgnoreCase

public class Test {
    public static void main(String[] args) {
        String s1 ="Student";
        String s2 ="Student";
        System.out.println(s1==s2);//比较值

        String s3 = new String("JAVA");
        String s4 = new String("JAVA");
        System.out.println(s3 == s4);//比较地址一样不一样
        System.out.println(s3.equals(s4));//比较值

        String s5 ="abc";
        String s6 ="adc";
        //s5>s6 返回正数
        //s5==s6 返回0
        //s5<s6 返回负数
        System.out.println(s5.compareTo(s6));


        //忽略大小写比较
        String s7 ="abc";
        String s8 ="ABC";
        System.out.println(s7.compareToIgnoreCase(s8));

    }
    public static void main3(String[] args) {
        String s1 = new String("hello");
        String s2 = new String("world");
        String s3 = s1;
      //  System.out.println(s3);

        String s4 = "";//存储0
        System.out.println(s4.length());
        System.out.println(s4.isEmpty());

        String s5 = null;//不存任何数
       // System.out.println(s5.length());
        System.out.println(s5.isEmpty());
    }

    public static void main2(String[] args) {

        String str = "hello";
        System.out.println(str);

        String str2 = new String("hehehe");
        System.out.println(str2);

        char[] array = {'a','b','c'};
        String str3 = new String(array);
        System.out.println(str3);
    }
  }
}

字符串查找

charAt

找到字符串某个字符的下标的元素

public class Test {

    public static void main(String[] args) {

        //charAt
        String s1 ="English";
        char ch = s1.charAt(3);//3下标的值
        System.out.println(ch);

        //遍历字符串
        for (int i = 0; i <s1.length() ; i++) {
            char sh = s1.charAt(i);//3下标的值
            System.out.println(sh);
        }
    }
}

indexof

int indexOf(int ch)
在字符串中 第一次出现某个字符的下标,没有返回-1

public class Test {
    public static void main(String[] args) {
        String str = "abacabc";
       int index = str.indexOf('a');//字符串中第一次出现字符a的下标
        System.out.println(index);

    }
}

int indexOf(int ch, int fromIndex)
从fromIndex位置开始找字符第一次出现的位置 没有返回-1

public class Test {
    public static void main(String[] args) {
        String str = "abacabc";
        int index = str.indexOf('a',3);
        System.out.println(index);
    }
}

int indexOf(String str)
返回字符串第一次出现的位置,没有返回-1

public class Test {
    public static void main(String[] args) {
        String str = "abacabc";
        int index = str.indexOf("abc");
        System.out.println(index);//4
    }
}

int indexOf(String str, int fromIndex)
从fromIndex位置开始找字符串第一次出现的位置,没有返回-1

public class Test {
    public static void main(String[] args) {
        String str = "acabacb";
        int index = str.indexOf("ab",2);
        System.out.println(index);
    }
}

int lastIndexOf(int ch)
从后往前找,返回字符第一次出现的位置,没有返回-1

public class Test {
    public static void main(String[] args) {
        String str = "acabacb";
        int index = str.lastIndexOf('b');
        System.out.println(index);//6
    }
}

int lastIndexOf(int ch, int fromIndex)
从fromIndex位置开始找,从后往前找字符第一次出现的位置,没有返
回-1

public class Test {
    public static void main(String[] args) {
        String str = "acabacb";
        int index = str.lastIndexOf('b',5);
        System.out.println(index);//3
    }
}

int lastIndexOf(String str)
从后往前找,返回字符串第一次出现的位置,没有返回-1

public class Test {
    public static void main(String[] args) {
        String str = "acabacb";
        int index = str.lastIndexOf("ac");
        System.out.println(index);//4
    }
}

int lastIndexOf(String str, int fromIndex)
从fromIndex位置开始找,从后往前找字符串第一次出现的位置,没有返
回-1

public class Test {
    public static void main(String[] args) {
        String str = "acabacb";
        int index = str.lastIndexOf("ac",3);
        System.out.println(index);//0
    }
}

转化

1. 数值和字符串转化

数字转字符串

public class Test {
    public static void main(String[] args) {
        //数字转字符串
        String s1 =  String.valueOf(1919);//整型
        String s2 =  String.valueOf(19.9);//浮点型
        System.out.println(s1);//变成字符串了
        System.out.println(s2);
    }

字符串转数字

public class Test {
    public static void main(String[] args) {
       int date = Integer.parseInt("198");//整型转字符串
      double date2 = Double.parseDouble("15.55");//浮点型转字符串
        System.out.println(date);
        System.out.println(date2);
    }
}

2.大小写转换 toUpperCase toLowerCase

public class Test {
    public static void main(String[] args) {
        String s1 = "hello";
        System.out.println(s1.toUpperCase());//HELLO
        
        String s2 = "WORLD";
        System.out.println(s2.toLowerCase());//world
    }

3.字符串转数组 toCharArray

public class Test {
    public static void main(String[] args) {
        String s1 = "hello";
        char[] array = s1.toCharArray();
        System.out.println(Arrays.toString(array));//Arrays.toString( )是打印数组的
    }
}

4.数组转字符串

public class Test {
    public static void main(String[] args) {
        char[] array ={'h','e','l','l','o'};
        String s1 = new String(array);
        System.out.println(s1);
    }
}

5.格式化 format

public class Test {
    public static void main(String[] args) {
        String s =String.format("%d-%d-%d",2023,11,06);
        System.out.println(s);//2023-11-06
    }

字符串替换

String replaceAll(String regex, String replacement)

替换所有的指定内容

public class Test {
    public static void main(String[] args) {
        String str = "abbaacca";
        System.out.println(str.replaceAll("b","q"));//aqqaacca
        System.out.println(str);//abbaacca
    }
}

String replaceFirst(String regex, String replacement)

替换首个内容

public class Test {
    public static void main(String[] args) {
        String str = "abbaacca";
        String s1 = str.replaceFirst("b","88");
        System.out.println(s1);

    }

注意事项: 由于字符串是不可变对象, 替换不修改当前字符串, 而是产生一个新的字符串

字符串拆分

以空格拆分

public class Test {
    public static void main(String[] args) {
        String str = "hello beautiful world";
        String [] s1 = str.split(" ");
        
        for (int i = 0; i < s1.length; i++) {
            System.out.println(s1[i]);
        }
    }

以空格分开,分成两组

public class Test {
    public static void main(String[] args) {
        String str = "hello beautiful world";
        String [] s1 = str.split(" ",2);

        for (int i = 0; i < s1.length; i++) {
            System.out.println(s1[i]);
        }
    }

特殊字符拆分

特殊字符作为分割符可能无法正确切分, 需要加上转义 \ \

public class Test {
// 拆分IP地址
    public static void main(String[] args) {
        String str = "198.153.1.2";
        String [] s1 = str.split("\\.");

        for (int i = 0; i < s1.length; i++) {
            System.out.println(s1[i]);
        }
    }

多个分隔符拆分

如果一个字符串中有多个分隔符,可以用"|"作为连字符

public class Test {
    public static void main(String[] args) {
        String str2 = "wo=he=zhangsan&zai&xuexi ";
        String [] array =str2.split("=|&");
        for (int i = 0; i < array.length; i++) {
            System.out.println(array[i]);
        }
    }
 }

字符串的截取

从一个完整的字符串之中截取出部分内容。

String substring(int beginIndex, int endIndex)

截取部分内容

public class Test {
    public static void main(String[] args) {
        String str3 = "abcaac";
        String s4 = str3.substring(0,3);
        System.out.println(s4);//abc
    }
}

String substring(int beginIndex)

从指定索引截取到结尾

public class Test {
    public static void main(String[] args) {
        String str3 = "abcaac";
        String s4 = str3.substring(3);
        System.out.println(s4);//aac
    }

其他操作

String trim()

去掉字符串中的左右空格,保留中间空格

public class Test {
    public static void main(String[] args) {
        String str4 = " abc aac ";
        String s5 = str4.trim();
        System.out.println(s5);//abc aac 
    }

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

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

相关文章

【数据分享】1985-2022年我国地级市专利数据(8项指标/Excel格式/Shp格式)

专利数量是反映一个城市创新水平的重要指标&#xff0c;我们在很多研究中都会用到专利数量数据&#xff0c;之前我们也分享过一些相关数据&#xff0c;比如全国地级市2017-2019年发明专利授权数和全国地级市2017-2020年专利授权数&#xff08;均可查看之前的文章获悉详情&#…

在Linux系统下部署Llama2(MetaAI)大模型教程

Llama2是Meta最新开源的语言大模型&#xff0c;训练数据集2万亿token&#xff0c;上下文长度是由Llama的2048扩展到4096&#xff0c;可以理解和生成更长的文本&#xff0c;包括7B、13B和70B三个模型&#xff0c;在各种基准集的测试上表现突出&#xff0c;最重要的是&#xff0c…

FHEW 和 TFHE 的统一框架:标准化 FHE

参考文献&#xff1a; [GHS12] Gentry C, Halevi S, Smart N P. Better bootstrapping in fully homomorphic encryption[C]//International Workshop on Public Key Cryptography. Berlin, Heidelberg: Springer Berlin Heidelberg, 2012: 1-16.[GHPS12] Gentry C, Halevi S,…

视频编辑SDK测试

短视频编辑SDK测试有一段时间了&#xff0c;因此抽时间对编辑SDK的相关内容进行简要复盘。 功能说明 短视频编辑SDK支持gif&#xff0c;不同格式的图片&#xff0c;视频文件的拼接导入&#xff0c;编辑&#xff0c;添加特效&#xff0c;合成导出等功能。更具体的介绍可以参照…

14:00面试,14:06就出来了,问的问题有点变态。。。。。。

从小厂出来&#xff0c;没想到在另一家公司又寄了。 到这家公司开始上班&#xff0c;加班是每天必不可少的&#xff0c;看在钱给的比较多的份上&#xff0c;就不太计较了。没想到5月一纸通知&#xff0c;所有人不准加班&#xff0c;加班费不仅没有了&#xff0c;薪资还要降40%…

Android 13.0 Launcher3 app图标长按去掉应用信息按钮

1.前言 在13.0的rom定制化开发中,在Launcher3定制化开发中,对Launcher3的定制化功能中,在Launcher3的app列表页会在长按时,弹出微件和应用信息两个按钮,点击对应的按钮跳转到相关的功能页面, 现在由于产品需求要求禁用应用信息,不让进入到应用信息页面所以要去掉应用信息…

5个高质量图片处理软件,抠图、特效不求人!

作为一个设计师或摄影家或者平面设计工作人员&#xff0c;又或者是普通人&#xff0c;只要你有图片处理的需求&#xff0c;就不可避免的会需要一个好用高效的图片处理网站&#xff0c;会抠素材&#xff0c;找图片&#xff0c;删除图片内容等等&#xff0c;都需要花费大量的时间…

【Redis】hash类型-内部编码使用场景

文章目录 内部编码测试内部编码&#xff1a; 使用场景缓存方式对比 内部编码 哈希的内部编码有两种&#xff1a; ziplist&#xff08;压缩列表&#xff09;&#xff1a;当哈希类型元素个数⼩于hash-max-ziplist-entries配置&#xff08;默认512个&#xff09;、同时所有值都⼩…

【C++】智能指针【内存泄漏|智能指针原理及使用|RAII】

目录 1、了解内存泄露 1.1 内存泄漏的定义及危害 1.2 内存泄漏分类&#xff08;了解&#xff09; 1.3 如何检测内存泄漏&#xff08;了解&#xff09; 1.4如何避免内存泄漏 2、智能指针的引出 3、智能指针的使用及原理 3.1 RAII 3.2 智能指针的原理 3.3 std::auto_pt…

雨洪水资源管理远程监控平台

雨洪水资源管理远程监控平台 汛期来临时&#xff0c;及时获得河道水库的水位涨幅数据对开展防汛抗洪工作至关重要&#xff0c;大量河道水库分布在远离城市的区域&#xff0c;而且分散&#xff0c;尤其是在紧急防汛阶段&#xff0c;如果只依靠传统人力巡查获得河道水位数据必将耗…

1688店铺所有商品数据接口(1688.item_search_shop)

1688店铺所有商品数据接口是一种允许开发者在其应用程序中调用1688店铺所有商品数据的API接口。利用这一接口&#xff0c;开发者可以获取1688店铺的所有商品信息&#xff0c;包括产品ID、SKU信息、价格、库存、图片等。这些数据可以用于构建各种业务场景&#xff0c;例如供应链…

Day1 ARM基础

【ARM课程认知】 1.ARM课程的作用 承上启下 基础授课阶段&#xff1a;c语言、数据结构、linux嵌入式应用层课程&#xff1a;IO、进程线程、网络编程嵌入式底层课程&#xff1a;ARM体系结构、系统移植、linux设备驱动c/QT 2.ARM课程需要掌握的内容 自己能够实现简单的汇编编…

宠物养成猫狗商城门店问诊档案流量主小程序开发

宠物养成猫狗商城门店问诊档案流量主小程序开发 猫狗宠物养成商城门店问诊档案流量主小程序开发&#xff0c;这是一个充满趣味性和创新性的项目。通过将宠物养成游戏与商城、问诊服务、社交功能等相结合&#xff0c;为用户提供一站式的宠物养育体验。 在宠物养成方面&#x…

高阶数据结构---并查集

文章目录 格子游戏搭配购买程序自动分析奇偶游戏银河英雄传说 一、格子游戏OJ链接 本题思路:本题首先我们将题目中所给的二维坐标映射到一维坐标中&#xff0c;从坐标从0开始进行&#xff0c;而题目中是从1开始&#xff0c;我们需要先进行--操作&#xff0c;然后利用并查集来判…

技术分享 | Appium环境安装与架构介绍

Appium架构 Appium 设计哲学 不需要为了自动化而重新编译或修改被测应用 不应该让移动端自动化测试限定在某种语言或者某个具体的框架 不要为了移动端的自动化测试而重新造轮子 移动端自动化测试应该是开源的 Appium 架构 Appium 架构图如下&#xff1a; Appium 的核心是…

【数据库】数据库模式 Schema

数据库模式 Schema 1.MySQL2.PostgreSQL3.SQL Server4.Oracle5.SQLite 在数据库的术语中&#xff0c;模式&#xff08;schema&#xff09;是一个逻辑概念&#xff0c;用于组织数据库中的对象。模式中的对象通常包括 表、索引、数据类型、序列、视图、存储过程、主键、外键 等等…

STM32笔记—DMA

目录 一、DMA简介 二、DMA主要特性 三、DMA框图 3.1 DMA处理 3.2 仲裁器 3.3 DMA通道 扩展: 断言&#xff1a; 枚举&#xff1a; 3.4 可编程的数据传输宽度、对齐方式和数据大小端 3.5 DMA请求映像 四、DMA基本结构 4.1 DMA_Init配置 4.2 实现DMAADC扫描模式 实现要求…

代码随想录 Day38 完全背包问题 LeetCode T70 爬楼梯 T322 零钱兑换 T279 完全平方数

前言 在今天的题目开始之前,让我们来回顾一下之前的知识,动规五部曲 1.确定dp数组含义 2.确定dp数组的递推公式 3.初始化dp数组 4.确定遍历顺序 5.打印dp数组来排错 tips: 1.当求取物品有限的时候用0-1背包,求取物品无限的时候用完全背包 结果是排列还是组合也有说法,当结果是组…

设计模式之工厂模式(Factory)

任何可以产生对象的方法或类&#xff0c;都可以称为工厂。 下面的代码定义了Car这种交通工具: public class Car {public void go() {System.out.println("Car go wuwuwuwuw....");} }然后在main函数里面想要调用调用Car的go方法&#xff0c;就需要new一个car对象&…

Netty入门指南之传统通信的问题

作者简介&#xff1a;☕️大家好&#xff0c;我是Aomsir&#xff0c;一个爱折腾的开发者&#xff01; 个人主页&#xff1a;Aomsir_Spring5应用专栏,Netty应用专栏,RPC应用专栏-CSDN博客 当前专栏&#xff1a;Netty应用专栏_Aomsir的博客-CSDN博客 文章目录 参考文献前言多线程…