gpt4 book ai didi

java - 如何删除字符串中的单个字符(java)?

转载 作者:行者123 更新时间:2023-12-01 22:41:46 25 4
gpt4 key购买 nike

我有一个字符串类型的变量,我想从中删除所有单个字符。

示例:

String test = "p testing t testing";

我希望输出是这样的:

String test = "testing testing";

请帮帮我。谢谢。

最佳答案

您可能想要使用正则表达式并替换由空格、输入的开头或结尾包围的每个字符,并将其替换为单个空格,例如

String test = "p testing t testing".replaceAll("(^|\\s+)[a-zA-Z](\\s+|$)", " ");

这可能会在字符串的前面和末尾放置一个空格,因此您可能需要单独处理这些情况:

//first replace all characters surrounded by whitespace and the whitespace by a single space
String test = "p testing t testing".replaceAll("\\s+[a-zA-Z]\\s+", " ");

//replace any remaining single character with whitespace and either start or end of input next to it with nothing
test = test.replaceAll("(?>^[a-zA-Z]\\s+|\\s+[a-zA-Z]$)", "");

另一个提示:如果您想过滤任何类型的字符(即unicode字符),您可能需要替换[a-zA-Z]\p{L} 表示任何字母,[\p{L}\p{N}] 表示任何字母或数字或 \S 对于任何非空白字符。当然还有更多可能的字符类别,所以请查看 regular-expressions.info .

最后一点:

尽管正则表达式是解决该问题的“简单”且简洁的方法,但对于大型输入,它可能比拆分和重新连接慢很多。您是否需要该性能取决于您的需求和输入的大小。

关于java - 如何删除字符串中的单个字符(java)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26020326/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com