gpt4 book ai didi

java - 在不使用 for 循环的情况下用其中的数字替换字符串

转载 作者:行者123 更新时间:2023-11-30 03:18:24 27 4
gpt4 key购买 nike

所以我目前有这个代码;

for (int i = 1; i <= this.max; i++) {
in = in.replace("{place" + i + "}", this.getUser(i)); // Get the place of a user.
}

效果很好,但我想保持简单(使用模式匹配)所以我用这段代码来检查它是否匹配;

System.out.println(StringUtil.matches("{place5}", "\\{place\\d\\}"));

StringUtil 的匹配;

public static boolean matches(String string, String regex) {
if (string == null || regex == null) return false;
Pattern compiledPattern = Pattern.compile(regex);
return compiledPattern.matcher(string).matches();
}

返回 true,然后是我需要帮助的下一部分,替换 {place5},以便我可以解析数字。我可以替换“{place”和“}”,但是如果字符串中有多个(“{place5} {username}”),那么据我所知,我不能再这样做了,如果您知道是否有一种简单的方法可以做到这一点,请告诉我,如果没有,我可以坚持使用 for 循环。

最佳答案

then comes the next part I need help with, replacing the {place5} so I can parse the number

为了获取{place之后的号码,您可以使用

s = s.replaceAll(".*\\{place(\\d+)}.*", "$1");

正则表达式匹配我们要搜索的字符串之前的任意数量的字符,然后 {place,然后我们使用 ( 匹配并捕获 1 个或更多数字\d+),然后我们将字符串的其余部分与 .* 匹配。请注意,如果字符串包含换行符,则应在模式的开头附加 (?s) 。替换模式中的 $1 会“恢复”我们需要的值。

关于java - 在不使用 for 循环的情况下用其中的数字替换字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31951161/

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