为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕少森 2023-11-01 22:44:51
我需要编写一个程序来请求并接受来自用户的三个输入:字符串、整数和双精度数。程序应该将输入传递给一个方法,该方法将字符串转换为其等效的数值,并将该值添加到剩余输入的总和中。程序应该向用户显示结果。字母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
查看完整描述

1 回答

?
慕丝7291255

TA贡献1859条经验 获得超6个赞

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 。

查看完整回答
反对 回复 2023-11-01
  • 1 回答
  • 0 关注
  • 64 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信