如何编写程序以获取用户的三个输入:字符串(转换为数字)、int 和 double 并将它们的值相加

我需要编写一个程序来请求并接受来自用户的三个输入:字符串、整数和双精度数。程序应该将输入传递给一个方法,该方法将字符串转换为其等效的数值,并将该值添加到剩余输入的总和中。程序应该向用户显示结果。


字母a值1,b值2,一直到字母z值26。如果它包含数字,则该字符的值是数字本身的值,0值0,1值1 ,一直到 9 都值 9。字符串中的任何其他字符(例如:!$?*&^%)都值 0。


到目前为止我所拥有的在下面的代码中


导入java.util.Scanner;公共静态无效主(字符串[] args){


            Scanner myObj = new Scanner(System.in);


            System.out.println("Please enter a string");




            String input1 = myObj.nextLine();


            if (!input1.matches("[a-zA-Z_]+!$?*&^%")) {

                System.out.println("Invalid String");

            }

                else { 

                System.out.println("Please enter a integer"); 

            }




            int input2 = myObj.nextInt();




            System.out.println("Please enter a double");


            double input3 = myObj.nextDouble();

        }


    }

示例输出 请输入字符串:dad6! 请输入整数:10 请输入小数:2.5 结果为:27.5


慕少森
浏览 99回答 1
1回答

慕丝7291255

import java.util.Scanner;public class Main{    public static void main(String[] args) {    float charSum=0;            Scanner myObj = new Scanner(System.in);            System.out.println("Please enter a string");            String input1 = myObj.nextLine();            char[] arr=input1.toCharArray();            for(int i=0;i<arr.length;i++){               int ascii=(int)arr[i];               if(ascii>=97&&ascii<=122){                charSum=charSum+ascii-96; //for a-z               }                 else if(ascii>=65&&ascii<=90){                charSum=charSum+ascii-64;  //for A-Z                }                else if(ascii>=48&&ascii<=57){                     charSum=charSum+ascii-48;  //ascii for number                }else{                     charSum=charSum+0;  //ascii for special Character                }            }            System.out.println("Please enter a Integer");            int integerValue = myObj.nextInt();            charSum+=integerValue;            System.out.println("Please enter a Double");            Double doubleValue = myObj.nextDouble();            charSum+=doubleValue;            System.out.println(charSum);    }}在这里,我取出了字符串并找出每个字符串的ascii值并减去96,因为a-> 97 .A-> 65的ascii值(因此如果a需要为1,则必须为97-96 = 1)并且对于您要求它为 0 的特殊字符,因此将其添加到 sum 变量中。由于 double 也是输入,因此输出可以是 float 或 double 。我采用了 float 。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java