java - 试图在用户输入的句子中找到所有四个字母的单词并替换它们,但代码不会做任何事情
问题描述
基本上我需要一个代码片段来查找用户输入的句子中的所有 4 个字母单词并将它们替换为 **** 。我写的代码不管怎么改都行不通。(例如,它不应该计算空格)
public class DisguiseWords {
static void count(String string) {
// Create an char array of given String
int j = string.trim().indexOf(" ");
while (j > 0) {
System.out.println(string.substring(0, j) + "-->> words " + j);
string = string.substring(j + 1).toString();
j = string.indexOf(" ");
}
if (string.length() == 4)
System.out.println("**** ");
}
}
解决方案
String
与正则表达式结合使用时,有一些非常方便的工具。
这个任务可以这样完成:
public static void main(String[] args) {
String sentence = "Hello this is the test sentence";
String newSentence = sentence.replaceAll("\\b\\w{4}\\b", "****");
System.out.println(newSentence);
}
输出:
Hello **** is the **** sentence
解释:
replaceAll
将采用正则表达式并用给定的替换替换每个找到的匹配项。正则表达式由以下部分组成:
\b
标记单词边界\w{4}
表示一个有 4 位数字的单词
推荐阅读
- html - 在 Angular 4 中的组件之间导航
- java - 如何解密在 Obj-c 中加密的 Java 数据
- php - 准备好的语句总是返回 false
- c# - GTK 中的 MessageBox 从未显示
- animation - 如何导出/保存用 plotly 制作的动画气泡图?
- javascript - 使用 react-select 设置默认值不起作用
- reactjs - branch.io deeplink 有时不会重定向到 iOS 上的 Messenger 上的 Appstore
- reactjs - 尝试创建一个切换功能以根据附加到第三个按钮的 onClick 事件将 2 个按钮的状态从禁用设置为启用
- google-chrome - 转换为 pdf 时 chrome 中标题上方的空白高度
- java - Firebase createUserWithEmailAndPassword task.isSuccessful()