【问题标题】:Merging two strings to one String without duplicate alphabets in ascending alphabetical order按字母升序将两个字符串合并为一个没有重复字母的字符串
【发布时间】:2026-02-16 04:55:01
【问题描述】:

假设我有 2 个字符串:

  • str1 = "bcdefghijkl"
  • str2 = "ehikoz"

我想将str2 的元素复制到str1 中,这样得到的str1 = "bcdefghikoz"

例如,

  • str1 = "aefghlowxyz", str2 = "delo", 结果 = "adefghlowxy"
  • str1 = “befghklnqtz”,str2 = “cehix”,结果 = “bcefghiklnx”

几个条件是: - 元素应按字母顺序排列 - 字符串 a 的大小应保持 11 - 如果str2 的字母不在str1 中,那么它应该按字母顺序替换str1 的元素

【问题讨论】:

  • 你的问题的标题和你要找的完全不一样
  • 请不要重复发布。努力改进原始帖子或将其删除并改进此帖子。
  • @ΦXoce웃Пepeúpa 我的意思是合并两个字符串
  • 不仅如此...您正在按字母顺序重新排序插入的字符

标签: java string sorting merge


【解决方案1】:

1) 遍历变量 b 中的每个字符串字符,并使用 字符串从变量 a 中保存的字符串中删除该字符(如果有的话)。 replace() 方法;

2) 将变量a中保存的字符串追加到变量b中保存的字符串;

3) 从变量b中保存的字符串中剪掉多余的字符(即:b = b.substring(0, 11);

4) 对变量b中的字符进行排序(即:使用String.toCharArray()java.util.Arrays.sort()强> 方法;

你已经完成了。

下次您发布问题时,请务必提供您尝试过的代码。

【讨论】:

  • 该算法不会产生请求的结果: •a="befghklnqtz" , b="cehix" result="bcefghiklnz" 对于 OP:为什么所需的结果包含“z”而不是包含一个“x”?
  • @FredK 是对的(感谢您发现 Fred)我有点倒退并进行了更正。这是一个很好的观点……如果遵循规则(b 中的所有字符都在 a 中,按升序排序,并且最多 11 个字符),那么结果中应该没有“z”。那是怎么回事?结果应该是:“bcefghiklnx”
  • 显然,上面 OP 示例中显示的结果存在缺陷,因为第一个示例显示的结果是 12 个字符而不是他/她自己的规则所规定的 11 个字符。那个或字符限制应该是变量'a'中字符串长度的限制。 OP需要指定。