1

我想知道你如何在java中将字母表示为整数。我正在解决一个问题,我必须在两个字母的单词之间找到中间字母。例如,我会选择“go”这个词,并为每个字母提供一个指定的整数值以找到中点字母。任何人都可以帮我解决这个问题,或者只是指出我正确的方向来解决如何获得两个字母单词之间的中点字母?

4

7 回答 7

4

这很简单

    int a = 'a';
    int c = 'c';
    char mid = (char) ((a + c) / 2);
    System.out.println(mid);

印刷

b
于 2013-02-07T04:25:07.920 回答
1

(int)str.charAt(i) 将为您提供一个整数值(ASCII 值)。对于“常规”字母,这应该可以让你做你想做的事。

str = "GO";
midLetter = Character.toChars(((int)str.charAt(0) + (int)str.charAt(1))/2);

我想我得到了匹配的括号......

于 2013-02-07T04:25:02.253 回答
1

如果通过“字母”您指的是char原始类型,那么它们已经在幕后由整数表示。来自Java 教程

数据类型是char单个 16 位 Unicode 字符。它的最小值为'\u0000'(或 0),最大值为'\uffff'(或 65,535,包括在内)。

因此,您可以将char文字分配给int变量,例如:

int g = 'g';
int o = 'o';

这应该足以让你开始。

于 2013-02-07T04:25:04.097 回答
1

在 java(和大多数其他语言)中,字符实际上表示为数字。谷歌“ascii table”,你会发现小写a实际上是 97。

假设你想索引小写a为 0,然后给定字符串中的任意字符,你可以用 'a' 字符减去它,你会得到索引

String str = ...;
for(int i=0; i<str.length(); i++) {
   char c = str.charAt(i);
   int cIndex = c - 'a';

   // do something with cIndex...
}
于 2013-02-07T04:25:49.303 回答
0

如果给定的字母是 char,则转换类型 (int)yourword。然后找到中点

于 2013-02-07T04:25:30.897 回答
0

Character.getNumericValue 为每个字符返回一个数值。因此,每个字母通过 Character 类都有一个唯一的数值。

这可能是您订购的起点,尽管您可能需要考虑大小写等。

于 2013-02-07T04:26:09.790 回答
0

您应该能够来回往返int并对您的值char执行算术运算:char

char median = 0;
for(char ch=65; ch<91; ch++) {
    System.out.println(ch);
    median += ch;
}
median = (char)(median/26);
System.out.println("=====");
System.out.println("Median leter in the alphabet: "+median);
于 2013-02-07T04:27:42.860 回答