java - 将字母映射到数字的最佳方法

标签 java

将字母映射到数字的最佳方法是什么。使用案例:

'A' -> 1,
'B' -> 2,
'C' -> 3,
    .
    . 
'Z' -> 26

然后又重复

'A' -> 27
'B' -> 28 
    .
    .
'Z' -> 52

再来一次

'A' -> 53

绘制此图的最佳方法是什么?例如说直到数字 100

预期的输出应该是当给出输入“A”时,我需要获取映射到“A”的相应数字的列表。在本例中为 1,27,53 ...

由于我是编程新手,我想到的解决方案是 switch case、枚举等,但我相信有更好的解决方案。我正在使用 Java

最佳答案

您的输入是一个字符。例如:

char input = 'A';

您可以使用输入 - 'A' 来获取您的字母和 'A' 之间的差异。然后使用 for 循环,每一步增加 26 直到达到 100:

char input = 'A';

for (int i = input - 'A' + 1; i < 100; i += 26) {
    System.out.println(i);
}

输出:

1
27
53
79

对于相反的运算,您可以使用模 26(运算符 %)。模 26 将映射:

  • 0、26、52...到 0
  • 1、27、53...到 1
  • 2、28、54...到 2

等等

这是代码:

int input = 27;
char output = (char)('A' + (input - 1) % 26);
System.out.println(output);

输出:

A

关于java - 将字母映射到数字的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55532046/

相关文章:

java - 在哪里存储类关系信息?

java - 使用 WSS4J 的安全 Web 服务调用返回 "An error was discovered processing the <wsse:Security> header"

java - 如何在 Intellij 13.1.4 的 Maven 多模块项目中重建/制作 .iml 文件

java - Android Studio 设置 JDK 错误

java - com.amazonaws.services.texttract 的 Maven 依赖项是什么?

java - 在 linux 中运行可执行文件 - 不工作

java - 启动 Oracle Coherence 时出现 SocketException

java - 在 Android Activity 之间传递字符串

java - Java在数组中查找具有多个关键字的对象

Java JAXB 多线程解码