JAVA之String中删除指定字符方式(11种方法)

JAVA字符串中删除指定字符的11种方法

在JAVA编程中,经常需要处理字符串,其中常见的操作之一就是删除指定字符。下面将介绍11种常用的删除指定字符的方法。

方法1:使用replace方法替换指定字符

可以使用String类的replace方法,将要删除的字符替换成空字符串:

public static String deleteChar(String str, char c) {
    return str.replace(c + "", "");
}

使用示例:

String str = "hello world";
char c = 'l';
String newStr = deleteChar(str, c);
System.out.println(newStr); // 输出:heo word

方法2:使用replaceAll方法替换指定字符

可以使用String类的replaceAll方法,将要删除的字符替换成空字符串:

public static String deleteChar2(String str, char c) {
    return str.replaceAll(c + "", "");
}

使用示例:

String str = "hello world";
char c = 'l';
String newStr = deleteChar2(str, c);
System.out.println(newStr); // 输出:heo word

方法3:使用正则表达式替换指定字符

可以使用正则表达式替换要删除的字符:

public static String deleteChar3(String str, char c) {
    String reg = "[" + c + "]";
    return str.replaceAll(reg, "");
}

使用示例:

String str = "hello world";
char c = 'l';
String newStr = deleteChar3(str, c);
System.out.println(newStr); // 输出:heo word

方法4:使用StringBuffer删除指定字符

可以使用StringBuffer类的deleteCharAt方法,删除指定位置的字符:

public static String deleteChar4(String str, char c) {
    StringBuffer sb = new StringBuffer(str);
    for (int i = 0; i < sb.length(); i++) {
        if (sb.charAt(i) == c) {
            sb.deleteCharAt(i);
        }
    }
    return sb.toString();
}

使用示例:

String str = "hello world";
char c = 'l';
String newStr = deleteChar4(str, c);
System.out.println(newStr); // 输出:heo word

方法5:使用StringBuilder删除指定字符

StringBuilder类与StringBuffer类类似,也可以使用deleteCharAt方法删除指定位置的字符:

public static String deleteChar5(String str, char c) {
    StringBuilder sb = new StringBuilder(str);
    for (int i = 0; i < sb.length(); i++) {
        if (sb.charAt(i) == c) {
            sb.deleteCharAt(i);
        }
    }
    return sb.toString();
}

使用示例:

String str = "hello world";
char c = 'l';
String newStr = deleteChar5(str, c);
System.out.println(newStr); // 输出:heo word

方法6:使用正则表达式截取指定字符之前的部分和之后的部分

可以使用正则表达式截取指定字符之前的部分和之后的部分,然后将它们拼接起来:

public static String deleteChar6(String str, char c) {
    String[] strs = str.split(c + "");
    StringBuilder sb = new StringBuilder();
    for (String s : strs) {
        sb.append(s);
    }
    return sb.toString();
}

使用示例:

String str = "hello world";
char c = 'l';
String newStr = deleteChar6(str, c);
System.out.println(newStr); // 输出:heo word

方法7:使用StringTokenizer分割字符串

可以使用StringTokenizer类来分割字符串,然后将分割出来的部分拼接起来:

public static String deleteChar7(String str, char c) {
    StringTokenizer st = new StringTokenizer(str, c + "");
    StringBuilder sb = new StringBuilder();
    while (st.hasMoreTokens()) {
        sb.append(st.nextToken());
    }
    return sb.toString();
}

使用示例:

String str = "hello world";
char c = 'l';
String newStr = deleteChar7(str, c);
System.out.println(newStr); // 输出:heo word

方法8:使用indexOf和substring删除指定字符

可以使用indexOf方法找到要删除的字符串的位置,然后使用substring方法将其移除:

public static String deleteChar8(String str, char c) {
    StringBuilder sb = new StringBuilder(str);
    int index = -1;
    while ((index = sb.indexOf(c + "")) != -1) {
        sb = sb.deleteCharAt(index);
    }
    return sb.toString();
}

使用示例:

String str = "hello world";
char c = 'l';
String newStr = deleteChar8(str, c);
System.out.println(newStr); // 输出:heo word

方法9:使用split和join删除指定字符

可以使用split方法将字符串分割成数组,然后使用join方法将数组拼接成字符串:

public static String deleteChar9(String str, char c) {
    String[] strs = str.split(c + "");
    return String.join("", strs);
}

使用示例:

String str = "hello world";
char c = 'l';
String newStr = deleteChar9(str, c);
System.out.println(newStr); // 输出:heo word

方法10:使用正则表达式删除指定字符

可以使用正则表达式删除指定字符:

public static String deleteChar10(String str, char c) {
    String reg = "[" + c + "]";
    return str.replaceAll(reg, "");
}

使用示例:

String str = "hello world";
char c = 'l';
String newStr = deleteChar10(str, c);
System.out.println(newStr); // 输出:heo word

方法11:使用迭代器删除指定字符

可以使用Iterator类来迭代删除指定字符:

public static String deleteChar11(String str, char c) {
    StringBuilder sb = new StringBuilder(str);
    Iterator<Character> iterator = sb.chars()
                                      .mapToObj(e -> (char) e)
                                      .iterator();  
    while (iterator.hasNext()) {
        if (iterator.next() == c) {
            iterator.remove();
        }
    }
    return sb.toString();
}

使用示例:

String str = "hello world";
char c = 'l';
String newStr = deleteChar11(str, c);
System.out.println(newStr); // 输出:heo word

总结

以上是删除指定字符的11种方法,每种方法都有其适合场景和使用方式,需要注意的是,String类是不可变类,所以每次操作都需要重新构造字符串。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JAVA之String中删除指定字符方式(11种方法) - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • java 将方法作为传参–多态的实例

    当我们在Java中定义一个方法时,有时需要将另一个方法作为参数进行传递。这种将方法作为另一个方法的参数的机制被称为方法参数化或方法传递。 这种技术是Java多态的实例之一,多态允许我们以不同的方式来处理不同类型的对象。将方法参数化允许我们根据需要传递不同的行为。 下面是完整的攻略,分为以下几个步骤: 1.定义一个接口 我们首先需要定义一个接口,它将定义我们需…

    Java 2023年5月26日
    00
  • Java中使用MyBatis-Plus操作数据库的实例

    下面我将详细讲解Java中使用MyBatis-Plus操作数据库的实例的完整攻略。 一、什么是MyBatis-Plus MyBatis-Plus是MyBatis的增强工具包,简化了MyBatis的使用。MyBatis-Plus提供了许多常用的功能,如分页、逻辑删除、条件构造器等。在使用MyBatis-Plus时,我们可以更加便捷和高效地操作数据库。 二、在J…

    Java 2023年5月20日
    00
  • Java实现批量向mysql写入数据的方法

    当需要向mysql中插入大批量数据时,通过Java程序向数据库逐一插入会比较慢,而批量插入可以提高插入效率。下面就讲解一下如何Java实现批量向mysql写入数据的方法。 1. 准备工作 在开始之前,需要先检查好已经安装好了Mysql的Java驱动,可以在官网下载或在maven中引入即可。 另外,在写程序之前,需要先创建一个mysql表,以下示例代码将插入数…

    Java 2023年5月20日
    00
  • PerlScript编写ASP(转载)

    让我来详细讲解一下“PerlScript编写ASP(转载)”的完整攻略。 什么是PerlScript编写ASP? PerlScript编写ASP是一种使用PerlScript语言编写ASP的技术,与VBScript和JScript类似,PerlScript是一种基于Perl的脚本语言,它可以与ASP一起使用来生成动态网页。PerlScript编写ASP可以提…

    Java 2023年6月16日
    00
  • 详解SpringBoot如何开启异步编程

    详解SpringBoot如何开启异步编程 在SpringBoot中,开启异步编程可以大大提高应用程序的性能,提升用户体验。本文将详细介绍SpringBoot如何实现异步编程。 添加异步编程依赖 要使用异步编程,首先需要在项目的pom.xml文件中添加异步编程相关的依赖。 <!– 使用异步编程 –> <dependency> &lt…

    Java 2023年5月19日
    00
  • Mybatis批量修改的操作代码

    下面我将详细讲解Mybatis批量修改的操作代码的完整攻略。 什么是Mybatis批量修改操作 Mybatis批量修改操作是指在一次数据库连接的情况下,通过一条SQL语句同时修改多条数据的操作,相对于单条SQL语句修改单个数据,批量修改操作在实际应用中更加高效。 Mybatis批量修改操作的实现方式 Mybatis批量修改操作的实现方式有两种:第一种是基于f…

    Java 2023年5月19日
    00
  • springboot使用shiro-整合redis作为缓存的操作

    Spring Boot使用Shiro整合Redis作为缓存的操作 在Spring Boot应用程序中,我们可以使用Apache Shiro框架来实现安全认证和授权功能。同时,我们也可以使用Redis作为Shiro的缓存存储。在本文中,我们将详细介绍如何使用Shiro整合Redis作为缓存的操作,并提供两个示例说明。 步骤分析 在Spring Boot应用程序…

    Java 2023年5月18日
    00
  • 解决mybatis 数据库date 与 java中Date类型映射问题

    解决mybatis 数据库date 与 java中Date类型映射问题可以通过以下步骤: 1. 增加日期类型转换器 在mybatis的配置文件中,我们可以增加一个类型转换器,将数据库中的date类型转换为Java中的Date类型。在mybatis-config.xml文件中增加如下代码: <typeHandlers> <typeHandle…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部