【问题标题】:Converting Char to its Numerical value without using getNumericValue在不使用 getNumericValue 的情况下将 Char 转换为其数值
【发布时间】:2016-06-28 10:44:03
【问题描述】:

是否有任何算法可以替代 getNumericValue 将字符转换为其数值,例如 'a' = 1 'b' = 2 等等?提前谢谢!

【问题讨论】:

    标签: java char int


    【解决方案1】:

    你可以用一个简单的算术运算

    char d = 'd';
    int numericValue = d - 'a' + 1; // 4
    

    这也将有效,因为

    `

    是ASCII表中a之前的字符

    int numericValue = d - '`'; // 4
    

    大写/小写

    以下适用于小写或大写字符

    char d  = 'd';
    int numericValue = d - (d > 96 ? '`' : '@');
    

    【讨论】:

      【解决方案2】:

      好吧,如果你想将 'a' 映射到 'z' 到数字 1 到 26,你可以减去 'a' 并加 1 :

      char c = 'e';
      int nc = c - 'a' + 1; // 5
      

      编辑:

      为了将某个输入字符串的所有字符转换为整数,可以使用数组来存储整数值。

      例如:

      String input = "over";
      int[] numbers = input.length();
      for (int i=0; i<input.length(); i++)
          numbers[i] = input.charAt(i) - 'a' + 1;
      System.out.println(Arrays.toString(numbers));
      

      【讨论】:

      • 我明白了,但是(传入的愚蠢问题)假设我输入了“over”(假设程序要求输入)并将其存储在字符数组中,我将如何获得数字这个词的价值?意思是 o = 19 等等?
      • @REA98 您必须创建一个输入字符串长度的 int 数组,计算字符串每个字符的 int 值,并将其分配给该数组。或者,如果您愿意,可以使用 Map&lt;Character,Integer&gt; 将字符映射到整数。
      • 你能给我举个例子吗?
      【解决方案3】:

      试试这个。

        int intVal(char character){
        char subtract = 'a';
      
        int integerValue = (int) character;
      
        if(integerValue < 97){
          subtract = 'A';
        }
      
        integerValue = integerValue - (int) subtract + 1;
      
        return integerValue;
      }
      

      【讨论】:

        猜你喜欢
        • 2022-01-20
        • 1970-01-01
        • 2016-04-04
        • 1970-01-01
        • 2019-08-27
        • 2011-08-02
        • 2018-08-01
        • 2022-01-08
        • 2013-08-09
        相关资源
        最近更新 更多