Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Java和HTML获取两个字符串输入之和的正确方法是什么?_Java_Html - Fatal编程技术网

使用Java和HTML获取两个字符串输入之和的正确方法是什么?

使用Java和HTML获取两个字符串输入之和的正确方法是什么?,java,html,Java,Html,我试图创建一个HTML页面,用户在其中输入2个数字作为字符串,单击submit,然后显示总和。在解析过程中,我搞砸了一些东西,我不知道如何更正它。如何解决此问题 java.base/jdk.internal.math.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1838) java.base/jdk.internal.math.FloatingDecimal.parseFloat(FloatingDecimal.ja

我试图创建一个HTML页面,用户在其中输入2个数字作为字符串,单击submit,然后显示总和。在解析过程中,我搞砸了一些东西,我不知道如何更正它。如何解决此问题

java.base/jdk.internal.math.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1838)
    java.base/jdk.internal.math.FloatingDecimal.parseFloat(FloatingDecimal.java:122)
    java.base/java.lang.Float.parseFloat(Float.java:461)
    basicaddition.BasicAddition.processRequest(BasicAddition.java:42)
守则:

    String EmptyError = "";
    String FirstNumber = request.getParameter("FirstNumber");
    String SecondNumber = request.getParameter("SecondNumber");

    float firstNumber = Float.parseFloat(FirstNumber);
    float secondNumber = Float.parseFloat(SecondNumber);

    if(FirstNumber.isBlank() && SecondNumber.isBlank())
    {
      EmptyError = "There is no sum";
    }

   else {
            try {
                 firstNumber = Float.parseFloat(FirstNumber);

            } catch (NumberFormatException ex) {
                EmptyError = "Value is not a number";
            }

            try {
                secondNumber = Float.parseFloat(SecondNumber);

            } catch (NumberFormatException ex) {
                EmptyError = "Value is not a number";
            }


        }

      Float Result = firstNumber + secondNumber;

    response.setContentType("text/html;charset=UTF-8");
    try (PrintWriter out = response.getWriter()) {
        /* TODO output your page here. You may use following sample code. */
        out.println("<!DOCTYPE html>");
        out.println("<html>");
        out.println("<head>");
        out.println("<title>Servlet BasicAddition</title>");            
        out.println("</head>");
        out.println("<body>");

        out.println("<h1>Returns the sum of two numbers, ");
        out.println("</h1>");

        out.println("<input type='text' name='FirstNumber' />");
        out.println(EmptyError);

        out.println("<input type='text' name='SecondNumber' />");
        out.println(EmptyError);

        out.println("<input type='submit' value='Get the sum' />");
        out.println(EmptyError);
        out.println(Result);


        out.println("<h1>Servlet BasicAddition at " + request.getContextPath() + "</h1>");
        out.println("</body>");
        out.println("</html>");
String emptyyror=”“;
字符串FirstNumber=request.getParameter(“FirstNumber”);
字符串SecondNumber=request.getParameter(“SecondNumber”);
float firstNumber=float.parseFloat(firstNumber);
float secondNumber=float.parseFloat(secondNumber);
if(FirstNumber.isBlank()&&SecondNumber.isBlank())
{
EmptyError=“没有金额”;
}
否则{
试一试{
firstNumber=Float.parseFloat(firstNumber);
}捕获(NumberFormatException ex){
EmptyError=“值不是数字”;
}
试一试{
secondNumber=Float.parseFloat(secondNumber);
}捕获(NumberFormatException ex){
EmptyError=“值不是数字”;
}
}
浮点结果=第一个数字+第二个数字;
setContentType(“text/html;charset=UTF-8”);
尝试(PrintWriter out=response.getWriter()){
/*TODO在此处输出您的页面。您可以使用以下示例代码*/
out.println(“”);
out.println(“”);
out.println(“”);
out.println(“Servlet基本编辑”);
out.println(“”);
out.println(“”);
println(“返回两个数字的和,”);
out.println(“”);
out.println(“”);
out.println(清空错误);
out.println(“”);
out.println(清空错误);
out.println(“”);
out.println(清空错误);
out.println(结果);
println(“位于“+request.getContextPath()+”的Servlet基本条件);
out.println(“”);
out.println(“”);

我看到您正在尝试分析条件之前的数字

float firstNumber = Float.parseFloat(FirstNumber);
float secondNumber = Float.parseFloat(SecondNumber);

这两行抛出异常,因为FirstNumber和SecondNumber不是有效的数字!

if
条件中,必须使用'OR'运算符。否则至少有一个条件为
false
它会跳到
else
。在
if之前,必须将
字符串
转换为
浮点
语句。检查以下代码:

    String EmptyError = "";

    String FirstNumber = request.getParameter("FirstNumber");
    String SecondNumber = request.getParameter("SecondNumber");

    float firstNumber, secondNumber;

    if (FirstNumber.isBlank() || SecondNumber.isBlank()) {
        EmptyError = "There is no sum";
    } else {
        //Rest of the code
    }

可能是因为行float firstNumber=float.parseFloat(firstNumber);float secondNumber=float.parseFloat(secondNumber)上的空字符串解析;除非本文的全部目的是了解Servlet API,否则我强烈建议使用像Spring MVC这样的合理框架来为您处理所有这些问题。