java如何获得循环中生成的字符值之和?
抱歉,如果标题有误导性或令人困惑,但这里是我的困境。 我正在输入一个字符串,希望为字母表中的每个大写字母(a=1,…Z=26)分配一个值,然后将该字符串中每个字母的值相加
示例:ABCD=10(从1+2+3+4开始)
但我不知道如何将字符串中的所有值相加
注意:这仅适用于大写的字母和字符串
public class Test {
public static void main(String[] args) {
Scanner scannerTest = new Scanner(System.in);
System.out.println("Enter a name here: ");
String str = scannerTest.nextLine();
char[] ch = str.toCharArray();
int temp_integer = 64;
for (char c : ch) {
int temp = (int) c;
if (temp <= 90 & temp >= 65){
int sum = (temp - temp_integer);
System.out.println(sum);
}
}
}
}
你可以看到,每次循环,我都会打印出总数, 意思:如果我输入“AB”,输出将是1和2
然而,我想更进一步,把这两个值加在一起,但我很困惑,有什么建议或帮助吗?(注意:这不是作业或任何东西,只是练习习题集)
# 1 楼答案
通过使用Java8的lambda函数以简洁的方式实现这一点
# 2 楼答案
使用64来表示ascii表中“A”之前的字符很难理解,您可以直接在Java中执行字符之间的替换
因此,如果'A'代表1,那么只需执行c-'A'+1就会为每个大写字母提供相应的整数值
要得到总和,只需求和:将总和初始化为0,然后在for循环中,根据计算出的值加上增量总和。您可以使用增量分配操作:+=