【发布时间】:2017-10-19 15:17:25
【问题描述】:
我有一个字符串,例如:s2 = "SPX8X55";
我希望这个字符串的每个字母都有自己的值:
(A = 1, B = 2, ... Z = 26)
我发现我可以通过 foreach 循环将字符分配给一个整数。 因为我只使用大写字母,所以我使用 c - 64 因为 A 在 ASCII 中是数字 65,所以 65 - 64 = 1 => A 的数字是 1。
for (char c : s2.toCharArray()) {
int charzahl = c - 64;
System.out.println(charzahl);
}
但我希望数字保持数字。如果我使用这个 foreach 循环,我得到 8 的 -8 和 5 的 -11。 我想过一个“if-statement”,比如:
if ( c >= 0 || c <= 0){ ... }
检查是否有 c 的任何数字。如果我将这些字符转换为 int,我会再次得到 -8 和 -11。 我怎样才能将它们转换为 int 以保持原样?我的目的是在最后用 for 循环将所有数字相加。
【问题讨论】:
-
“但我希望这些数字保留数字”-确切地是什么意思?您的意思是“我希望数字 '0' 到 '9' 保持在 48-57 之间吗?”
-
if ( c >= 0 || c <= 0)哪个数字不会大于或等于零或小于或等于零?似乎毫无意义。 -
我希望 5 保持 5 但作为 int 而不是 -11。
-
你想让A和1都变成1吗?
标签: java casting char int ascii