String 用户输入字符串的数值

String 用户输入字符串的数值,string,sum,String,Sum,我需要编写一个代码,返回用户输入字符串的数值总和。例如,如果用户输入aa,总和将为2,bb,总和将为4。这就是我所拥有的。任何帮助都将不胜感激。我意识到hash-map方法可能不是最有效的,但是我想这样做。我的问题是得到结果的总和 在这里输入代码 public static void main(String[] args) { final Map<Character, Integer> map; System.out.println("Plaese enter a

我需要编写一个代码,返回用户输入字符串的数值总和。例如,如果用户输入aa,总和将为2,bb,总和将为4。这就是我所拥有的。任何帮助都将不胜感激。我意识到hash-map方法可能不是最有效的,但是我想这样做。我的问题是得到结果的总和

在这里输入代码

public static void main(String[] args)
{
    final Map<Character, Integer> map;

    System.out.println("Plaese enter a sentence:");

    Scanner read = new Scanner(System.in);
    final String str = read.nextLine();

    map = new HashMap<>();  
    // or map = new HashMap<Character, Integer> if you are using something before Java 7.
    map.put('a', 1);
    map.put('b', 2);
    map.put('c', 3);
    map.put('d', 4);
    map.put('e', 5);
    map.put('f', 6);
    map.put('g', 7);
    map.put('h', 8);
    map.put('i', 9);
    map.put('j', 10);
    map.put('k', 11);
    map.put('l', 12);
    map.put('m', 13);
    map.put('n', 14);
    map.put('o', 15);
    map.put('p', 16);
    map.put('q', 17);
    map.put('r', 18);
    map.put('s', 19);
    map.put('t', 20);
    map.put('u', 21);
    map.put('v', 22);
    map.put('w', 23);
    map.put('x', 24);
    map.put('y', 25);
    map.put('z', 26);



    for(final char c : str.toCharArray())
    {
        final Integer val;

        val = map.get(c);

        if(val == null)
        {  
            // some sort of error
        }
        else
        {
            System.out.print(val + " ");

        }
    }

    System.out.println();
    String numbers = val.nextLine();  //String would be 55
    int sum = 0;
    for (char c : numbers.toCharArray()) {
        sum += c - '0';
    }
    System.out.println(sum); //the answer is 10
}

} 
publicstaticvoidmain(字符串[]args)
{
最终地图;
System.out.println(“请输入句子:”);
扫描仪读取=新扫描仪(System.in);
最后一个字符串str=read.nextLine();
map=新的HashMap();
//或者map=newhashmap,如果您使用的是Java7之前的版本。
地图放置('a',1);
地图放置('b',2);
地图放置('c',3);
地图放置('d',4);
地图放置('e',5);
地图放置('f',6);
地图放置('g',7);
地图放置('h',8);
地图放置('i',9);
地图放置('j',10);
地图放置('k',11);
地图放置('l',12);
地图放置('m',13);
地图放置('n',14);
地图放置('o',15);
地图放置('p',16);
地图放置('q',17);
地图放置('r',18);
地图.put('s',19);
地图放置('t',20);
地图放置('u',21);
地图放置('v',22);
地图放置('w',23);
地图放置('x',24);
地图放置('y',25);
地图放置('z',26);
for(最终字符c:str.toCharArray())
{
最终整数val;
val=map.get(c);
if(val==null)
{  
//某种错误
}
其他的
{
系统输出打印(val+“”);
}
}
System.out.println();
String numbers=val.nextLine();//字符串应该是55
整数和=0;
for(字符c:numbers.toCharArray()){
总和+=c-‘0’;
}
System.out.println(sum);//答案是10
}
} 

我希望这对你有用

var str = "aa";
var strArray = str.split('');
var letterValArray = strArray.map(char => char.charCodeAt(0) - 96);
var sum = 0;
letterValArray.forEach(num => sum += num)

我希望这对你有用

var str = "aa";
var strArray = str.split('');
var letterValArray = strArray.map(char => char.charCodeAt(0) - 96);
var sum = 0;
letterValArray.forEach(num => sum += num)

您可以使用HashMap进行求和。您可以在for循环中执行sum+=map.get(c)。(在循环之前声明sum并用0初始化)


您可以使用HashMap进行求和。您可以在for循环中执行sum+=map.get(c)。(在循环之前声明sum并用0初始化)


很抱歉我以为你在使用javascript,也许类似的东西仍然可以为你工作抱歉!我假设您使用的是javascript,也许类似的东西仍然适用于您