【问题标题】:Java: converting each letter into the number for example a = 1, b = 2, c = 3Java:将每个字母转换为数字,例如 a = 1、b = 2、c = 3
【发布时间】:2020-02-01 01:22:06
【问题描述】:
char[] alphabet = {'a','b','c','d','e','f','g','h','i','j','k','l'...};

int number = 0;

char input = console.nextLine().charAt(0);

for (int i = 0; i <= 24; i++) {
   if(Character.isLetter(alphabet[i])) {
      number = i;
   }
}
System.out.println(number);

例如,我希望将每个字母转换为数字

a = 1; b = 2; c = 3...等等。

但由于某种原因,它不断将“数字”变为 10 请帮忙 我的代码一团糟

【问题讨论】:

  • 您使用的是 IDE 吗? IDE 会警告您输入变量未使用。

标签: java arrays char int


【解决方案1】:

要存储键值对,您可以使用映射。键值对的示例是 'a' 和 1。

创建一个映射并使用您的键值对填充它。

Map<Character, Integer> letterMap = new HashMap<>();
letterMap.put('a', 1);
letterMap.put('b', 2);
...

之后,您可以通过简单的“get”操作来检索字符的值。

char input = console.nextLine().charAt(0);
if(Character.isLetter(input)) {
    int number = letterMap.get(input); //Simple get operation
    System.out.println(number);
} else {
    System.out.println("You did not input a lowercase letter.");
}

【讨论】:

  • map 的实现非常明显,正如您所期望的那样。 :)
  • 感谢您查看 :)
【解决方案2】:

你可以这样做

char ch = 'z';
int position = ch - 'a' + 1;
System.out.print(position);

【讨论】:

    【解决方案3】:

    你需要更清楚你想要完成的事情。你想对这些字母的数字位置做什么?您是否正在获取用户输入?您可能正在寻找类似的东西:

    Scanner keyboard = new Scanner(System.in);
    String alphabet = "abcdefghijklmnopqrstuvwxyz";
    System.out.println("Enter string: ");
    String input = "";
    while(keyboard.hasNextLine()) {
        input += keyboard.nextLine().toLowerCase();
    }
    
    for(int i = 0; i < input.length(); i++) {
        System.out.print(alphabet.indexOf(input.charAt(i))+1+" ");
    }
    

    【讨论】:

      【解决方案4】:

      由于字符在 ASCII 字符集中是按顺序排列的,因此只需将每个字符减去 a 并加 1。

      char[] alphabet = {'a','b','c','d','e','f','g','h','i','j','k','l'};
      for (char c : alphabet) {
         System.out.println(c - 'a' + 1);
      }
      
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-06-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-01-30
        • 1970-01-01
        • 2022-01-23
        相关资源
        最近更新 更多