Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 字母数字字符串到相应的按键_Java - Fatal编程技术网

Java 字母数字字符串到相应的按键

Java 字母数字字符串到相应的按键,java,Java,我正在解决一个问题,需要将给定的字母数字字符串转换为基于文本的格式(不知道确切的名称)示例:a=2、c=222、f=333等。为了更清楚地说明这一点,可以在手机键盘上找到。就像你在没有QWERTY键盘的老式硬键手机上发短信一样 示例:(输入)您好 (输出)44+33+555+555+666 这就是我的想法。我可以将所有案例(总共26+10)预加载到HashMap中并使用它。但我认为应该有其他更好的方法来做到这一点?欢迎所有/任何精彩的想法。因为您需要将字符串(或者可能是单个字符!?)与数字关联起

我正在解决一个问题,需要将给定的字母数字
字符串
转换为基于文本的格式(不知道确切的名称)<代码>示例:a=2、c=222、f=333等。为了更清楚地说明这一点,可以在手机键盘上找到。就像你在没有QWERTY键盘的老式硬键手机上发短信一样

示例:(输入)您好
(输出)44+33+555+555+666


这就是我的想法。我可以将所有案例(总共26+10)预加载到
HashMap
中并使用它。但我认为应该有其他更好的方法来做到这一点?欢迎所有/任何精彩的想法。

因为您需要将字符串(或者可能是单个字符!?)与数字关联起来,所以没有比使用一些java.util.Map实现更简单的方法了

对于计算部分,您可以首先计算字符串中每个字符出现的频率,然后为(c)添加出现次数(c)x数字(c)(2 x 555,而不是在示例中添加两次555)



更新:想想看,对于特殊情况,可能会有优化。例如,在将all映射为0的极端情况下,计算变得很简单,不需要hashmap;)或者所有的数字都是正数?也许每个字母数字字符映射到不同的素数?

HashMap
将是实现所需操作的最简单方法


因为您正在使用一组静态映射,您可能需要考虑将查找表实现为一个新类。我认为类的内部可以是字符串数组。在数组中查找时,可以从正在查找的字符中减去“a”字符,这将成为数组索引。(对于标点符号,如果减法结果不在0和25之间,则可以使用特殊情况处理它们)。此方法将绕过哈希函数并提高性能。

基于文本的格式到底是什么意思?任何转换问题的示例都应始终显示输入/输出对。如果转换遵循公式,则可以临时计算公式。如果没有,那么我认为
映射图会很好地工作。@mellamokb:好了,我已经编辑了它,显示了一个样本
输入
输出
一个数字的输出是什么,比如说
2
?它应该是
2222