gpt4 book ai didi

java - Java 中的字符串替换冒险

转载 作者:行者123 更新时间:2023-12-01 08:13:37 25 4
gpt4 key购买 nike

我正在尝试实现这一目标 - 如果字符串包含模式 %25 后跟任意数量的字母数字字符,那么我需要替换 %25%。下面的代码似乎不对-

while (userPassword.contains("%25"+"[^A-Za-z0-9]*")) {
userPassword = userPassword.replace("%25", "%");
}

最佳答案

方法 String.contains() 不适用于正则表达式,但适用于简单文本,因此您实际上正在查看精确序列“%25[^” A-Za-z0-9]”在你的字符串中。另外, ^ 意味着它应该匹配字符类中不存在的内容,即不是字母数字字符,这与您想要的相反。

您可以使用方法String.matches:

while (userPassword.matches(".*%25[A-Za-z0-9]*"))

(如您所见,我将所有正则表达式放在一个字符串中。编译器会为您完成此操作,但更清晰)

例如:

String userPassword = "%25sdflk42"; 

System.out.println(userPassword.contains("%25"+"[A-Za-z0-9]*"));
System.out.println(userPassword.matches(".*%25[A-Za-z0-9]*"));

这将打印:

false
true

关于java - Java 中的字符串替换冒险,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15331269/

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