java - 从 JAVA 字符串中消除以特定字符开头的空格和单词

标签 java string

从 JAVA 字符串中消除以特定字符开头的空格和单词。

删除字符串单词之间的代码空格:

String str1= "This is symbel for snow and silk. Grapes are very dear"
String str2=str1.replaceAll(" ","");
System.out.println(str2);

它给出了这个输出:-

output:
Thisissymbelforsnowandsilk.Grapesareverydear 

但我想消除 str1 中以 char 's'(符号雪丝)和 char 'd'(亲爱的)开头的所有单词,以获得以下输出:-

output:
Thisisforand.Grapesarevery

如何通过修改这段代码来实现?

最佳答案

最好的解决方案是使用正则表达式,也称为正则表达式。

这些专为字符串中的复杂搜索和替换功能而设计。

这个:

"([sd]\\w+)|\\s+"

匹配括号 () 指示的单词组,以 's' 或 'd' 开头,后跟一个或多个“单词”字符 (\\w = 任何字母数字或下划线) < em>OR 一个或多个空白字符 (\\s = whitespace)。当像这样用作 String replaceAll 函数的参数时:

s.replaceAll("([sd]\\w+)|\\s+", "");

匹配这两种模式中任何一种的每一次出现都被替换为空字符串。

Oracle 的 java 文档中有关于正则表达式的综合信息:

http://docs.oracle.com/javase/tutorial/essential/regex/

虽然一开始它们看起来很神秘,但学习它们可以大大简化您的代码。几乎所有现代语言都提供正则表达式,因此您获得的有关正则表达式的任何知识都是有用且可转移的。

此外,网络上到处都是方便的网站,您可以在这些网站上测试您的正则表达式,然后再将它们提交到代码中。

关于java - 从 JAVA 字符串中消除以特定字符开头的空格和单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24014234/

相关文章:

java - Java 中 String 相对于 StringBuilder 的优势

java - 使用 Java 方法 indexof 与 substring 结合创建新字符串时出现错误输出

php - 无法突出显示描述php mysql

c - 将字符串的一部分 append 到另一个字符串

java - 比较 getString() 返回值时的意外结果

python - 在 Python 中使用多个定界符拆分字符串

java - Android - Activity 无法解析为类型

java - 如何将配置属性传递给 SparkListener?

java - 较旧的日期被解析为夏令时,即使在 Java 中并非如此

Java Scanner next (".") 给我 java.util.InputMismatchException