我想知道如何在java中将字母表示为整数。我正在研究一个问题,我必须找到两个字母之间的中间字母。例如,我会选择单词'go'并为每个字母提供一个指定的整数值来查找中点字母。任何人都可以帮我解决这个问题,或者只是指出我正确的方向去解决如何获得两个字母之间的中点字母的问题?
答案 0 :(得分:4)
这很简单
int a = 'a';
int c = 'c';
char mid = (char) ((a + c) / 2);
System.out.println(mid);
打印
b
答案 1 :(得分:1)
(int)str.charAt(i)将得到一个整数值(ASCII值)。对于“常规”字母,这应该可以让你做你想做的事。
str = "GO";
midLetter = Character.toChars(((int)str.charAt(0) + (int)str.charAt(1))/2);
我想我的括号与......
相符答案 2 :(得分:1)
如果通过“letters”指的是char
基元类型,那么它们已经在幕后用整数表示。来自Java Tutorials:
char
数据类型是一个16位Unicode字符。它有一个 最小值'\u0000'
(或0)和最大值'\uffff'
(或 65,535(含))。
因此,您可以将char
字面值分配给int
变量,例如:
int g = 'g';
int o = 'o';
这应该足以让你开始。
答案 3 :(得分:1)
在java(和大多数其他语言)中,字符实际上表示为数字。谷歌的'ascii表',你会发现小写a
实际上是97。
假设您想将小写a
索引为0,然后从字符串中给出任意字符,您可以使用'a'chacater减去它,然后您将得到索引
String str = ...;
for(int i=0; i<str.length(); i++) {
char c = str.charAt(i);
int cIndex = c - 'a';
// do something with cIndex...
}
答案 4 :(得分:0)
如果给定的字母是char,那么转换你的word类型(int)。然后找到中点
答案 5 :(得分:0)
Character.getNumericValue返回每个字符的数值。因此,每个字母都通过Character类具有唯一的数值。
这可能是您订购的起点,但您可能需要考虑案例等。
答案 6 :(得分: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);