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日

相关文章

  • IDEA不编译除了.java之外的文件的解决办法(推荐)

    IDEA不编译除了.java之外的文件的解决办法(推荐) 在使用IntelliJ IDEA 进行项目开发时,我们可能会遇到只编译 Java 文件,而不编译其他文件的问题,这可能会导致一些问题出现。此时,我们需要采取一些措施来解决这个问题。 解决方案 解决方案有很多种,主要有三种: 方案一 打开IntelliJ IDEA设置,找到Compiler,在其中找到C…

    Java 2023年5月26日
    00
  • Java实现简单的万年历

    下面就是讲解实现Java简单的万年历的攻略及示例说明: 1. 确定需求和功能 在实现Java简单的万年历之前,我们需要定义该项目的需求和功能,以便能够更好地进行程序设计和编写。以下是常见的需求和功能: 能够查询指定日期的日历; 能够查询制定月份和年份的日历; 能够查询当前日期的日历; 能够显示节假日和纪念日等特殊日期。 2. 时间库的选择 为了实现Java简…

    Java 2023年5月19日
    00
  • SpringBoot导出Word文档的三种方式

    SpringBoot导出Word文档的三种方式 一、导出方案 1、直接在Java代码里创建Word文档,设置格式样式等,然后导出。(略) 需要的见:https://blog.csdn.net/qq_42682745/article/details/120867432 2、富文本转换后的HTML下载为Word文档。相当于把HTML转为Word导出 3、使用模板…

    Java 2023年5月4日
    00
  • Spring Security动态权限的实现方法详解

    Spring Security动态权限的实现方法详解 Spring Security 是一个基于 Spring 的安全框架,提供了一种基于角色的访问控制模型。但是在一些场景中,我们需要动态地控制用户的权限,这时候我们就需要实现 Spring Security 的动态权限控制。本文将详细介绍如何实现 Spring Security 动态权限的控制。 实现步骤 …

    Java 2023年6月3日
    00
  • java使用jdbc连接数据库工具类和jdbc连接mysql数据示例

    使用Java连接数据库一般都会使用Java Database Connectivity(JDBC)技术。JDBC 是一种Java提供的标准化的数据库操作接口,支持多种数据库,包括MySQL、Oracle、SQL Server等等。在Java中,使用JDBC编写程序连接数据库是比较常见的,接下来详细讲解一下如何使用 JDBC 连接 MySQL 数据库及其工具类…

    Java 2023年5月19日
    00
  • 将java中的 string 类型转成 数组案例

    下面是将Java中的String类型转换成数组的完整攻略。 1. 将String类型转成char数组 可以通过toCharArray()方法将String类型转成char数组。该方法会将String类型转换成char类型的数组,所以我们可以直接使用。 String str = "hello"; char[] charArray = str…

    Java 2023年5月26日
    00
  • 小程序websocket心跳库(websocket-heartbeat-miniprogram)

    小程序websocket心跳库(websocket-heartbeat-miniprogram)是一个专为微信小程序开发的websocket心跳保活库。本库基于wx.socket组件进行二次封装,使得小程序能够稳定地通过websocket进行双向实时通信。本库提供了websocket的连接建立、websocket的发送数据、websocket的心跳保活、we…

    Java 2023年5月23日
    00
  • 如何用java编写一个rmi

    下面是详细讲解如何用Java编写一个RMI服务的完整攻略: 1. 什么是RMI RMI(Remote Method Invocation)是Java中一种远程机制,允许在不同的Java虚拟机间,通过网络传输调用远程对象的方法。 2. 实现RMI服务的步骤 2.1 编写业务接口 首先需要编写业务接口,声明远程调用时需要使用的方法,例如: public inte…

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