Java-String类的常用方法

2023-11-16

Java-String类的常用方法

1.常用方法1

  1. int length():返回字符串的长度: return value.length
  2. char charAt(int index): 返回某索引处的字符return value[index]
  3. boolean isEmpty():判断是否是空字符串:return value.length == 0
  4. String toLowerCase():使用默认语言环境,将 String 中的所字符转换为小写
  5. String toUpperCase():使用默认语言环境,将 String 中的所字符转换为大写
  6. String trim():返回字符串的副本,忽略前导空白和尾部空白
  7. boolean equals(Object obj):比较字符串的内容是否相同
  8. boolean equalsIgnoreCase(String anotherString):与equals方法类似,忽略大小写
  9. String concat(String str):将指定字符串连接到此字符串的结尾。 等价于用“+”
  10. int compareTo(String anotherString):比较两个字符串的大小
  11. String substring(int beginIndex):返回一个新的字符串,它是此字符串的从beginIndex开始截取到最后的一个子字符串。
  12. String substring(int beginIndex, int endIndex) :返回一个新字符串,它是此字符串从beginIndex开始截取到endIndex(不包含)的一个子字符串。
package com.lmw.classtest;

import org.junit.Test;

/**
 * @author 
 * @version 1.0.0
 * @createTime 2022/5/15 21:01
 * @description
 */

public class StringMethod1 {
    @Test
    public void test1() {
        String s1 = "helloworld";
        System.out.println(s1.length()); // 获取长度
        System.out.println(s1.charAt(0)); // 获取指定索引的字符
//        s1 = "";
        System.out.println(s1.isEmpty()); // 判空

        System.out.println(s1.toLowerCase()); // 转小写
        System.out.println(s1.toUpperCase()); // 转大写

        String s3 = " hello world ";
        System.out.println(s3.trim()); // 去除两端空格
    }

    @Test
    public void test2() {
        String s1 = "HelloWorld";
        String s2 = "helloworld";
        System.out.println(s1.equals(s2)); // 比较内容是否相等
        System.out.println(s1.equalsIgnoreCase(s2)); //忽略大小写比较内容是否相等

        System.out.println(s1.concat("Aka")); // 字符串连接

        String s3 = "abc";
        String s6 = new String("abe");
        System.out.println(s3.compareTo(s6)); //涉及到字符串排序,正数表示当前对象比比较对象大,负数表示当前对象对比较对象小


        String s7 = "你好,我在北京";
        System.out.println(s7.substring(0,2)); // 从0开始截取,到第1位,不包含第2位,左闭右开原则
        System.out.println(s7.substring(2)); // 从第二位开始截取到最后一位

    }

}

2.常用方法2

  1. boolean endsWith(String suffix):测试此字符串是否以指定的后缀结束

  2. boolean startsWith(String prefix):测试此字符串是否以指定的前缀开始

  3. boolean startsWith(String prefix, int toffset):测试此字符串从指定索引开始的子字符串是否以指定前缀开始

  4. boolean contains(CharSequence s):当且仅当此字符串包含指定的 char 值序列时,返回 true

  5. int indexOf(String str):返回指定子字符串在此字符串中第一次出现处的索引

  6. int indexOf(String str, int fromIndex):返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始

  7. int lastIndexOf(String str):返回指定子字符串在此字符串中最右边出现处的索引

  8. int lastIndexOf(String str, int fromIndex):返回指定子字符串在此字符串中最后一次出现处的索引,从指定的索引开始反向搜索

    注:indexOf和lastIndexOf方法如果未找到都是返回-1

package com.lmw.classtest;

import org.junit.Test;

/**
 * @author limingwei6
 * @version 1.0.0
 * @createTime 2022/5/15 21:01
 * @description
 */

public class StringMethod2 {
    @Test
    public void test1() {
        String s1 = "helloworld";
        System.out.println(s1.endsWith("ld")); // 是否以某字符串结尾 返回true false
        System.out.println(s1.startsWith("hello")); // 是否以为某字符串开头
        System.out.println(s1.startsWith("Hello")); // 区分大小写
        System.out.println(s1.startsWith("world",5)); // 指定开始位置,匹配是否以某字符串开头

        System.out.println(s1.contains("wor") ); // 判断字符串中是否包含字符串
        System.out.println(s1.indexOf("wor") ); // 从前往后 判断字符串中是否包含字符串,包含的话从那个索引开始,
        System.out.println(s1.indexOf("woR") ); // 判断字符串中是否包含字符串,包含的话从那个索引开始,不包含返回-1
        System.out.println(s1.indexOf("lo",5) ); // 从某个索引开始匹配 是否包含字符串

        System.out.println(s1.lastIndexOf("or") ); // 从后面往前 判断字符串中是否包含字符串,包含的话从那个索引开始
        System.out.println(s1.lastIndexOf("o",6) ); // 从某个索引开始匹配


    }
}

3.常用方法3

替换:

  1. String replace(char oldChar, char newChar):返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所 oldChar 得到的。
  2. String replace(CharSequence target, CharSequence replacement):使用指定的字面值替换序列替换此字符串所匹配字面值目标序列的子字符串。
  3. String replaceAll(String regex, String replacement):使用给定的 replacement 替换此字符串所匹配给定的正则表达式的子字符串。
  4. String replaceFirst(String regex, String replacement):使用给定的 replacement 替换此字符串匹配给定的正则表达式的第一个子字符串。
    匹配:
  5. boolean matches(String regex):告知此字符串是否匹配给定的正则表达式。
    切片:
  6. String[] split(String regex):根据给定正则表达式的匹配拆分此字符串。
  7. String[] split(String regex, int limit):根据匹配给定的正则表达式来拆分此字符串,最多不超过limit个,如果超过了,剩下的全部都放到最后一个元素中。
package com.lmw.classtest;

import org.junit.Test;

/**
 * @author 
 * @version 1.0.0
 * @createTime 2022/5/15 21:01
 * @description
 */

public class StringMethod3 {
    @Test
    public void test() {
        String str1 = "北京你好我在南京,他在东京";
        System.out.println(str1.replace("北京","东京")); // 替换之后需要用新的变量接收
        System.out.println(str1); // 执行replace方法之后 原变量的值不变

        String str2 = "12hello34java789";
        System.out.println(str2.replaceAll("\\d+",",").replaceAll("^,|,$",""));//正则匹配替换

        String str3 = "12345";
        System.out.println(str3.matches("\\d+")); //正则匹配是否全是数字

        String tel ="0571-4534489";
        System.out.println(tel.matches("0571-\\d{7,8}")); // 正则匹配是否电话号码

        String str4 = "hello|world|java";
        String[] a = str4.split("\\|");//按指定分割符切割字符串,返回一个数组
        for (String s : a) {
            System.out.println(s);

        }
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java-String类的常用方法 的相关文章

  • Gradle 构建错误:无法从 https://repo1.maven.org/maven2/io/fabric/tools/gradle/maven-metadata.xml 加载 Maven 元数据

    我在 Android studio 中遇到 gradle 构建错误 如下所示 Error A problem occurred configuring project MyApp Could not resolve all dependen
  • Junit:如何测试从属性文件读取属性的方法

    嗨 我有课ReadProperty其中有一个方法ReadPropertyFile返回类型的Myclass从属性文件读取参数值并返回Myclass目的 我需要帮助来测试ReadPropertyFile方法与JUnit 如果可能的话使用模拟文件
  • Java 枚举与创建位掩码和检查权限的混淆

    我想将此 c 权限模块移植到 java 但是当我无法将数值保存在数据库中然后将其转换为枚举表示形式时 我很困惑如何执行此操作 在 C 中 我创建一个如下所示的枚举 public enum ArticlePermission CanRead
  • 为 java 游戏创建交互式 GUI

    大家好 我正在创建一个类似于 java 中的 farmville 的游戏 我只是想知道如何实现用户通常单击以与游戏客户端交互的交互式对象 按钮 我不想使用 swing 库 通用 Windows 看起来像对象 我想为我的按钮导入自定义图像 并
  • 如何在java中将一个数组列表替换为另一个不同大小的数组列表

    我有两个大小不同的数组列表 如何从此替换 ArrayList
  • Pig Udf 显示结果

    我是 Pig 的新手 我用 Java 编写了一个 udf 并且包含了一个 System out println 其中的声明 我必须知道在 Pig 中运行时该语句在哪里打印 假设你的UDF 扩展了 EvalFunc 您可以使用从返回的 Log
  • 谷歌应用程序引擎会话

    什么是java应用程序引擎 默认会话超时 如果我们将会话超时设置为非常非常长的时间 会不会产生不良影响 因为谷歌应用程序引擎会话默认情况下仅存储在数据存储中 就像facebook一样 每次访问该页面时 会话仍然永远存在 默认会话超时设置为
  • 在接口中使用默认方法是否违反接口隔离原则?

    我正在学习 SOLID 原则 ISP 指出 客户端不应被迫依赖于他们所使用的接口 不使用 在接口中使用默认方法是否违反了这个原则 我见过类似的问题 但我在这里发布了一个示例 以便更清楚地了解我的示例是否违反了 ISP 假设我有这个例子 pu
  • Java 公历日历更改时区

    我正在尝试设置 HOUR OF DAY 字段并更改 GregorianCalendar 日期对象的时区 GregorianCalendar date new GregorianCalendar TimeZone getTimeZone GM
  • 没有 Spring 的自定义 Prometheus 指标

    我需要为 Web 应用程序提供自定义指标 问题是我不能使用 Spring 但我必须使用 jax rs 端点 要求非常简单 想象一下 您有一个包含键值对的映射 其中键是指标名称 值是一个简单的整数 它是一个计数器 代码会是这样的 public
  • 将 MOXy 设置为 JAXB 提供程序,而在同一包中没有属性文件

    我正在尝试使用 MOXy 作为我的 JAXB 提供程序 以便将内容编组 解组到 XML JSON 中 我创建了 jaxb properties 文件 内容如下 javax xml bind context factory org eclip
  • 如何在用户输入数据后重新运行java代码

    嘿 我有一个基本的java 应用程序 显示人们是成年人还是青少年等 我从java开始 在用户输入年龄和字符串后我找不到如何制作它它们被归类为 我希望它重新运行整个过程 以便其他人可以尝试 的节目 我一直在考虑做一个循环 但这对我来说没有用
  • Spring Boot Data JPA 从存储过程接收多个输出参数

    我尝试通过 Spring Boot Data JPA v2 2 6 调用具有多个输出参数的存储过程 但收到错误 DEBUG http nio 8080 exec 1 org hibernate engine jdbc spi SqlStat
  • 当 OnFocusChangeListener 应用于包装的 EditText 时,TextInputLayout 没有动画

    不能比标题说得更清楚了 我有一个由文本输入布局包裹的 EditText 我试图在 EditText 失去焦点时触发一个事件 但是 一旦应用了事件侦听器 TextInputLayout 就不再对文本进行动画处理 它只是位于 editText
  • 使用 AsyncTask 传递值

    我一直在努力解决这个问题 但我已经到了不知道该怎么办的地步 我想做的是使用一个类下载文件并将其解析为字符串 然后将该字符串发送到另一个类来解析 JSON 内容 所有部件都可以单独工作 并且我已经单独测试了所有部件 我只是不知道如何将值发送到
  • Android:无法使用 DbHelper 和 Contract 类将数据插入 SQLite

    public class Main2Activity extends AppCompatActivity private EditText editText1 editText2 editText3 editText4 private Bu
  • 包 javax.el 不存在

    我正在使用 jre6 eclipse 并导入 javax el 错误 包 javax el 不存在 javac 导入 javax el 过来 这不应该是java的一部分吗 谁能告诉我为什么会这样 谢谢 米 EL 统一表达语言 是 Java
  • 如果没有抽象成员,基类是否应该标记为抽象?

    如果一个类没有抽象成员 可以将其标记为抽象吗 即使没有实际理由直接实例化它 除了单元测试 是的 将不应该实例化的基类显式标记为抽象是合理且有益的 即使在没有抽象方法的情况下也是如此 它强制执行通用准则来使非叶类抽象 它阻止其他程序员创建该类
  • 如何防止在Spring Boot单元测试中执行import.sql

    我的类路径中有一个 import sql 文件 其中包含一些 INSERT 语句 当使用 profile devel 运行我的应用程序时 它的数据被加载到 postgres 数据库中 到目前为止一切正常 当使用测试配置文件执行测试时 imp
  • Spring Boot 无法更新 azure cosmos db(MongoDb) 上的分片集合

    我的数据库中存在一个集合 documentDev 其分片键为 dNumber 样本文件 id 12831221wadaee23 dNumber 115 processed false 如果我尝试使用以下命令通过任何查询工具更新此文档 db

随机推荐