java中String字符串删除空格的方式有哪些

发布时间:2022-08-13 10:09:33 作者:iii
来源:亿速云 阅读:191

Java中String字符串删除空格的方式有哪些

在Java编程中,处理字符串是非常常见的操作。字符串中的空格可能会影响程序的逻辑和输出结果,因此删除字符串中的空格是一个常见的需求。本文将详细介绍在Java中删除字符串空格的多种方式,包括使用内置方法、正则表达式、第三方库等。我们将通过代码示例和详细解释来帮助读者理解和掌握这些方法。

1. 使用trim()方法删除字符串两端的空格

trim()是Java中最常用的删除字符串两端空格的方法。它会删除字符串开头和结尾的所有空白字符(包括空格、制表符、换行符等),但不会影响字符串中间的空格。

示例代码

public class TrimExample {
    public static void main(String[] args) {
        String str = "  Hello, World!  ";
        String trimmedStr = str.trim();
        System.out.println("Original: '" + str + "'");
        System.out.println("Trimmed: '" + trimmedStr + "'");
    }
}

输出结果

Original: '  Hello, World!  '
Trimmed: 'Hello, World!'

解释

2. 使用replaceAll()方法删除所有空格

replaceAll()方法可以使用正则表达式来替换字符串中的特定字符。通过使用正则表达式\\s,我们可以匹配所有的空白字符(包括空格、制表符、换行符等),并将其替换为空字符串。

示例代码

public class ReplaceAllExample {
    public static void main(String[] args) {
        String str = "  Hello,   World!  ";
        String noSpaceStr = str.replaceAll("\\s", "");
        System.out.println("Original: '" + str + "'");
        System.out.println("No Space: '" + noSpaceStr + "'");
    }
}

输出结果

Original: '  Hello,   World!  '
No Space: 'Hello,World!'

解释

3. 使用replace()方法删除特定空格

replace()方法可以用来替换字符串中的特定字符或字符串。如果我们只想删除普通的空格字符(ASCII码为32),可以使用replace(" ", "")

示例代码

public class ReplaceExample {
    public static void main(String[] args) {
        String str = "  Hello,   World!  ";
        String noSpaceStr = str.replace(" ", "");
        System.out.println("Original: '" + str + "'");
        System.out.println("No Space: '" + noSpaceStr + "'");
    }
}

输出结果

Original: '  Hello,   World!  '
No Space: 'Hello,World!'

解释

4. 使用StringUtils类删除空格(Apache Commons Lang库)

Apache Commons Lang库提供了一个非常实用的StringUtils类,其中包含了许多处理字符串的静态方法。StringUtils.deleteWhitespace()方法可以删除字符串中的所有空白字符。

添加依赖

首先,需要在项目中添加Apache Commons Lang库的依赖。如果使用Maven,可以在pom.xml中添加以下依赖:

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.12.0</version>
</dependency>

示例代码

import org.apache.commons.lang3.StringUtils;

public class StringUtilsExample {
    public static void main(String[] args) {
        String str = "  Hello,   World!  ";
        String noSpaceStr = StringUtils.deleteWhitespace(str);
        System.out.println("Original: '" + str + "'");
        System.out.println("No Space: '" + noSpaceStr + "'");
    }
}

输出结果

Original: '  Hello,   World!  '
No Space: 'Hello,World!'

解释

5. 使用strip()方法删除Unicode空白字符(Java 11及以上版本)

从Java 11开始,String类新增了strip()stripLeading()stripTrailing()方法,用于删除字符串中的Unicode空白字符。与trim()方法不同,strip()方法可以处理Unicode空白字符,而不仅仅是ASCII空白字符。

示例代码

public class StripExample {
    public static void main(String[] args) {
        String str = "  Hello,   World!  ";
        String strippedStr = str.strip();
        System.out.println("Original: '" + str + "'");
        System.out.println("Stripped: '" + strippedStr + "'");
    }
}

输出结果

Original: '  Hello,   World!  '
Stripped: 'Hello,   World!'

解释

6. 使用StringTokenizer类删除空格

StringTokenizer类可以将字符串分割成多个令牌(tokens),并且可以指定分隔符。通过将空格作为分隔符,我们可以将字符串分割成多个部分,然后再将这些部分拼接起来,从而实现删除空格的效果。

示例代码

import java.util.StringTokenizer;

public class StringTokenizerExample {
    public static void main(String[] args) {
        String str = "  Hello,   World!  ";
        StringTokenizer tokenizer = new StringTokenizer(str, " ");
        StringBuilder noSpaceStr = new StringBuilder();
        while (tokenizer.hasMoreTokens()) {
            noSpaceStr.append(tokenizer.nextToken());
        }
        System.out.println("Original: '" + str + "'");
        System.out.println("No Space: '" + noSpaceStr.toString() + "'");
    }
}

输出结果

Original: '  Hello,   World!  '
No Space: 'Hello,World!'

解释

7. 使用split()join()方法删除空格

split()方法可以将字符串按照指定的正则表达式分割成数组,而join()方法可以将数组中的元素拼接成一个字符串。通过将字符串按照空格分割成数组,然后再将数组中的元素拼接起来,可以实现删除空格的效果。

示例代码

public class SplitJoinExample {
    public static void main(String[] args) {
        String str = "  Hello,   World!  ";
        String[] parts = str.split("\\s+");
        String noSpaceStr = String.join("", parts);
        System.out.println("Original: '" + str + "'");
        System.out.println("No Space: '" + noSpaceStr + "'");
    }
}

输出结果

Original: '  Hello,   World!  '
No Space: 'Hello,World!'

解释

8. 使用PatternMatcher类删除空格

PatternMatcher类是Java中用于处理正则表达式的工具。通过使用正则表达式\\s,我们可以匹配所有的空白字符,并将其替换为空字符串。

示例代码

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class PatternMatcherExample {
    public static void main(String[] args) {
        String str = "  Hello,   World!  ";
        Pattern pattern = Pattern.compile("\\s");
        Matcher matcher = pattern.matcher(str);
        String noSpaceStr = matcher.replaceAll("");
        System.out.println("Original: '" + str + "'");
        System.out.println("No Space: '" + noSpaceStr + "'");
    }
}

输出结果

Original: '  Hello,   World!  '
No Space: 'Hello,World!'

解释

9. 使用Stream API删除空格(Java 8及以上版本)

Java 8引入了Stream API,可以方便地对集合和数组进行操作。通过将字符串转换为字符流,过滤掉空白字符,然后再将字符流拼接成字符串,可以实现删除空格的效果。

示例代码

import java.util.stream.Collectors;

public class StreamExample {
    public static void main(String[] args) {
        String str = "  Hello,   World!  ";
        String noSpaceStr = str.chars()
                .filter(c -> !Character.isWhitespace(c))
                .mapToObj(c -> String.valueOf((char) c))
                .collect(Collectors.joining());
        System.out.println("Original: '" + str + "'");
        System.out.println("No Space: '" + noSpaceStr + "'");
    }
}

输出结果

Original: '  Hello,   World!  '
No Space: 'Hello,World!'

解释

10. 使用Guava库删除空格

Guava是Google提供的一个Java库,其中包含了许多实用的工具类和方法。CharMatcher类可以用于匹配和操作字符,包括删除空白字符。

添加依赖

首先,需要在项目中添加Guava库的依赖。如果使用Maven,可以在pom.xml中添加以下依赖:

<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>31.0.1-jre</version>
</dependency>

示例代码

import com.google.common.base.CharMatcher;

public class GuavaExample {
    public static void main(String[] args) {
        String str = "  Hello,   World!  ";
        String noSpaceStr = CharMatcher.whitespace().removeFrom(str);
        System.out.println("Original: '" + str + "'");
        System.out.println("No Space: '" + noSpaceStr + "'");
    }
}

输出结果

Original: '  Hello,   World!  '
No Space: 'Hello,World!'

解释

11. 使用StringBuilder手动删除空格

如果不想使用任何内置方法或第三方库,可以手动遍历字符串的每个字符,并使用StringBuilder来构建一个新的字符串,跳过空白字符。

示例代码

public class StringBuilderExample {
    public static void main(String[] args) {
        String str = "  Hello,   World!  ";
        StringBuilder noSpaceStr = new StringBuilder();
        for (char c : str.toCharArray()) {
            if (!Character.isWhitespace(c)) {
                noSpaceStr.append(c);
            }
        }
        System.out.println("Original: '" + str + "'");
        System.out.println("No Space: '" + noSpaceStr.toString() + "'");
    }
}

输出结果

Original: '  Hello,   World!  '
No Space: 'Hello,World!'

解释

12. 使用StringBuffer手动删除空格

StringBufferStringBuilder类似,都是可变的字符序列。StringBuffer是线程安全的,而StringBuilder不是。如果需要在多线程环境中操作字符串,可以使用StringBuffer

示例代码

public class StringBufferExample {
    public static void main(String[] args) {
        String str = "  Hello,   World!  ";
        StringBuffer noSpaceStr = new StringBuffer();
        for (char c : str.toCharArray()) {
            if (!Character.isWhitespace(c)) {
                noSpaceStr.append(c);
            }
        }
        System.out.println("Original: '" + str + "'");
        System.out.println("No Space: '" + noSpaceStr.toString() + "'");
    }
}

输出结果

Original: '  Hello,   World!  '
No Space: 'Hello,World!'

解释

13. 使用Character类判断和删除空格

Character类提供了许多静态方法来判断字符的类型。通过使用Character.isWhitespace()方法,我们可以判断一个字符是否是空白字符,并决定是否将其添加到新的字符串中。

示例代码

public class CharacterExample {
    public static void main(String[] args) {
        String str = "  Hello,   World!  ";
        StringBuilder noSpaceStr = new StringBuilder();
        for (char c : str.toCharArray()) {
            if (!Character.isWhitespace(c)) {
                noSpaceStr.append(c);
            }
        }
        System.out.println("Original: '" + str + "'");
        System.out.println("No Space: '" + noSpaceStr.toString() + "'");
    }
}

输出结果

Original: '  Hello,   World!  '
No Space: 'Hello,World!'

解释

14. 使用ArraysStringJoiner删除空格

Arrays类提供了许多操作数组的静态方法,而StringJoiner类可以用于拼接字符串。通过将字符串转换为字符数组,过滤掉空白字符,然后再使用StringJoiner拼接成字符串,可以实现删除空格的效果。

示例代码

import java.util.Arrays;
import java.util.StringJoiner;

public class ArraysStringJoinerExample {
    public static void main(String[] args) {
        String str = "  Hello,   World!  ";
        StringJoiner noSpaceStr = new StringJoiner("");
        Arrays.stream(str.split("\\s+")).forEach(noSpaceStr::add);
        System.out.println("Original: '" + str + "'");
        System.out.println("No Space: '" + noSpaceStr.toString() + "'");
    }
}

输出结果

Original: '  Hello,   World!  '
No Space: 'Hello,World!'

解释

15. 使用StringReaderStringWriter删除空格

StringReaderStringWriter是Java I/O库中的类,可以用于读取和写入字符串。通过使用StringReader读取字符串的每个字符,并使用StringWriter写入非空白字符,可以实现删除空格的效果。

示例代码

import java.io.IOException;
import java.io.StringReader;
import java.io.StringWriter;

public class StringReaderWriterExample {
    public static void main(String[] args) throws IOException {
        String str = "  Hello,   World!  ";
        StringReader reader = new StringReader(str);
        StringWriter writer = new StringWriter();
        int c;
        while ((c = reader.read()) != -1) {
            if (!Character.isWhitespace(c)) {
                writer.write(c);
            }
        }
        String noSpaceStr = writer.toString();
        System.out.println("Original: '" + str + "'");
        System.out.println("No Space: '" + noSpaceStr + "'");
    }
}

输出结果

Original: '  Hello,   World!  '
No Space: 'Hello,World!'

解释

16. 使用Scanner类删除空格

Scanner类可以用于解析字符串。通过使用Scanner类读取字符串的每个字符,并跳过空白字符,可以实现删除空格的效果。

示例代码

import java.util.Scanner;

public class ScannerExample {
    public static void main(String[] args) {
        String str = "  Hello,   World!  ";
        Scanner scanner = new Scanner(str);
        StringBuilder noSpaceStr = new StringBuilder();
        while (scanner.hasNext()) {
            noSpaceStr.append(scanner.next());
        }
        System.out.println("Original: '" + str + "'");
        System.out.println("No Space: '" + noSpaceStr.toString() + "'");
    }
}

输出结果

Original: '  Hello,   World!  '
No Space: 'Hello,World!'

解释

17. 使用BufferedReaderBufferedWriter删除空格

BufferedReaderBufferedWriter是Java I/O库中的类,可以用于高效地读取和写入字符。通过使用BufferedReader读取字符串的每个字符,并使用BufferedWriter写入非空白字符,可以实现删除空格

推荐阅读:
  1. c语言删除字符串中的空格
  2. 删除字符串空格

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

java string

上一篇:vue3+vite中开发环境与生产环境全局变量配置的方法

下一篇:python manim如何实现排序算法动画

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》