【问题标题】:How replace characters in words by dictionary in java?如何用java中的字典替换单词中的字符?
【发布时间】:2013-01-04 21:12:43
【问题描述】:

我有话,例如:

it
your
reality
real
our

还有某种字典,其中每个字符都用数字表示,这里是:

1 ij    2 abc   3 def
4 gh    5 kl    6 mn
7 prs   8 tuv   9 wxy
        0 oqz

我需要的是 - 用数字表示单词,如下所示:

it      -> 18
your    -> 9087
reality -> 7325189
real    -> 7325
our     -> 087

我知道我应该为此使用集合,但是哪一个呢? 我是 java 新手,欢迎提供任何示例!

更新: 在 php 中有 str_replace 函数,它可以将数组作为第一个参数 - 将搜索什么,第二个参数 - 将替换什么,java中有什么函数吗?

【问题讨论】:

  • 我们都曾经是新手,但我们通过尝试而不是通过复制 SO 答案来学习。我建议您向我们展示您的尝试,以及您的问题,我们很乐意为您提供帮助。
  • “复制 SO 答案”是什么意思?当然,最简单的解决方案是创建 Map 并遍历它,但正如您在更新部分中看到的那样,我正在寻找 java 中的 str_replace 模拟,因为它应该更快+更具可读性
  • 不会更快。字符串在 Java 中是不可变的。当然还有替换方法。你看过 String 的 javadoc 吗?记录类和方法。阅读文档。
  • 我不会写我的评论,如果你的更新内容在我第一次阅读时就在帖子中。您的原始问题没有任何源代码,听起来您正在寻找可以复制的解决方案。您的问题的答案是否定的,Java 没有这样的方法,可以将一个数组中的内容替换为另一个数组的相应内容。
  • @JBNizet 当然 String 有一个 replace 方法,但是不能像 PHP 的 str_replace 使用的 OP 那样使用它。

标签: java string collections replace character


【解决方案1】:

使用Map<Character, Integer> 将每个字符与其数字相关联。然后遍历单词的字符,获取相应的数字,并将其附加到 StringBuilder。

您也可以简单地使用一个由 26 个元素组成的数组,其中包含与每个字母相关的数字。要获取给定字符的索引,您只需使用

int index = theChar - 'a';

这样会更有效率,但可能可读性会差一些。

【讨论】:

  • 在java中有没有像set这样的键的数组?
  • 我不确定我理解你的意思。你读过 Map 的 javadoc 吗?正如我在回答中所指出的那样,我认为这就是您要寻找的东西。
猜你喜欢
  • 1970-01-01
  • 2018-09-11
  • 1970-01-01
  • 1970-01-01
  • 2019-01-29
  • 1970-01-01
  • 2015-03-03
  • 2012-09-13
  • 2013-12-28
相关资源
最近更新 更多