在java中,在不更改值的情况下将int字符转换为int字符

在java中,在不更改值的情况下将int字符转换为int字符,java,casting,char,int,ascii,Java,Casting,Char,Int,Ascii,我有一个字符串,例如: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); } 但我希望数字

我有一个字符串,例如:
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。 我考虑过一个“如果声明”,比如:


如果(c>=0 | | c您对不同的范围有不同的计算。由于计算量很少,此语法很清楚

int charzahl = 
    (c >= 'A' && c <= 'Z') ? c - 'A' + 1 : 
    (c >= '0' && c <= '9') ? c - '0' : 
    0;
int charzahl=

(c>='A'&&c='0'&&c对于不同的范围,您有不同的计算。因为它只是少数,所以这个语法很清楚

int charzahl = 
    (c >= 'A' && c <= 'Z') ? c - 'A' + 1 : 
    (c >= '0' && c <= '9') ? c - '0' : 
    0;
int charzahl=

(c>='A'&&c='0'&&c“但我希望数字保持数字”-你的确切意思是什么?你的意思是“我希望数字'0'到'9'保持为48-57,包括48-57?”
如果(c>=0 | | c我希望5保持为5,但作为int,而不是-11。你希望A和1都变成1吗?“但我希望数字保持数字”-您的确切意思是什么?您的意思是“我希望数字“0”到“9”作为48-57(包括48-57)保留?”
if(c>=0 | | c我希望5保持为5,但作为int而不是-11。您希望A和1都变成1吗?顺便说一句,Java使用的是的UTF-16编码,而不是ASCII的ASCII编码。BTW-Java使用的是的UTF-16编码,而不是ASCII的ASCII编码。