gpt4 book ai didi

java - 在字符串中交替解析和替换值

转载 作者:行者123 更新时间:2023-12-02 07:25:33 24 4
gpt4 key购买 nike

我有一个带有某些“标记”的字符串。
示例:

"Someone e.g. X here is a # and the other i.e. X is not but over is something else like #"  

我还有一个字符串列表,例如{“约翰”,“医生”,“吉姆”,“工程师”}

执行以下操作的最佳方法是什么:
我想将所有 # 字符替换为列表中相应的元素。

即我想跳过 XJohn 并替换 #engineer 中的 Jim另一个#
我想只循环 string#toCharArray() 但我很感兴趣是否有更好的方法来做到这一点。

注意:第二个列表中的值与相应的标记匹配。因此,列表中的第一个值(即 John)映射到第一次出现的 X#(无论哪种情况)。

示例:

输入:“某人,例如,这里的 X 是 #,另一个,即 X 不是,但另一个是其他类似 # 的东西,但 X 至少是 X,但不是 #”
{"约翰", "医生", "吉姆","约翰", "工程师", "医生"}
输出:
“某人,例如这里的 X 是医生,而另一个,即 X 不是,但另一个是像吉姆这样的其他人,但 X 至少是 X,但不是医生”

最佳答案

您可能有兴趣查看MessageFormat允许类似这种替换的东西。

例如

MessageFormat.format(""
+ "Someone e.g. {0} here is a {1} and the other i.e. {2} "
+ "is not but over is something else like {3}",
new String [] {"John", "doctor", "Jim","engineer"});

编辑:

如果无法修改输入字符串以包含占位符,并且占位符具有您在更新中提到的特殊含义(即 X 应被忽略,# 应被替换),那么您只需

  • 将计数器初始化为 0。
  • 创建一个StringBuilder对象。
  • 在空格上对输入字符串进行标记
  • 迭代每个标记
    • 如果是 X,则递增计数器,将 token 按原样附加到 StringBuilder 对象。
    • 如果是 #,则从输入数组中读取索引 counter 处的值,并将其附加到 StringBuilder 对象。
    • 添加一个空格。
  • StringBuilder.toString() 并修剪以删除尾随空格。

关于java - 在字符串中交替解析和替换值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13626141/

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