Java 如何使用布尔值添加用户输入的数字?

Java 如何使用布尔值添加用户输入的数字?,java,boolean,Java,Boolean,我正在为学校作业编写这个程序,它要求用户输入一系列字母和数字,并确定它是否是数字 我的老师要我把数字(数字)的字符加起来,输出为“你的数字加起来是:把加起来的数字放在这里” 输出的字母是一个字符串,上面写着“这是你的字母:*在这里放置字母。” 我想我的代码是正确的,它决定了它是否是一个数字,但我如何将它们相加呢?我尝试使用if语句来检查Character.isDigit是否为真,但我不断出错,我认为我写的完全是错的。如有任何答复,将不胜感激 这是我的密码: import java.util.*;

我正在为学校作业编写这个程序,它要求用户输入一系列字母和数字,并确定它是否是数字

我的老师要我把数字(数字)的字符加起来,输出为“你的数字加起来是:把加起来的数字放在这里” 输出的字母是一个字符串,上面写着“这是你的字母:*在这里放置字母。”

我想我的代码是正确的,它决定了它是否是一个数字,但我如何将它们相加呢?我尝试使用if语句来检查Character.isDigit是否为真,但我不断出错,我认为我写的完全是错的。如有任何答复,将不胜感激

这是我的密码:

import java.util.*;
import java.util.Scanner;
public class MyClass 
{
public static void main(String args[]) 
{

    int sum1 = 0;
    String stringFull = "";
    boolean isTrue = Character.isDigit(string1.charAt(i));




    Scanner getString = new Scanner(System.in);
    System.out.println("Please enter a sequence of letters: ");
    String string1 = getString.nextLine();

    for(int i = 0; i < 5; i++)
    {
        if (Character.isDigit(string1.charAt(i)))
        {
            sum1 += Character.getNumericValue(string1.charAt(i));

        } else {
            stringFull += string1.charAt(i);
        }

        if (isTrue)
        {
             System.out.println(sum1 * sum1);
        }

    }




}

}
import java.util.*;
导入java.util.Scanner;
公共类MyClass
{
公共静态void main(字符串参数[])
{
int sum1=0;
字符串stringFull=“”;
布尔isTrue=Character.isDigit(string1.charAt(i));
Scanner getString=新扫描仪(System.in);
System.out.println(“请输入字母序列:”);
String string1=getString.nextLine();
对于(int i=0;i<5;i++)
{
if(Character.isDigit(string1.charAt(i)))
{
sum1+=Character.getNumericValue(string1.charAt(i));
}否则{
stringFull+=string1.字符(i);
}
如果(是真的)
{
系统输出打印LN(sum1*sum1);
}
}
}
}

您将得到下面的编译错误,因为在这一行之前没有声明
i

boolean isTrue = Character.isDigit(string1.charAt(i));
相反,您应该使用
false

boolean isTrue = false;
然后,循环应该循环到给定的字符串长度,但您已经硬编码为5,这将在运行时导致字符串长度小于5时出现异常

 for(int i = 0; i < 5; i++)
我认为,更改
的正确位置是正确的
值,即检查数字的位置

if (Character.isDigit(string1.charAt(i)))
{
    sum1 += Character.getNumericValue(string1.charAt(i));
    isTrue = true;
}
你应该使用

Integer.parseInt(String.valueOf(string1.charAt(i)))
返回数字,而不是

Character.getNumericValue(string1.charAt(i))

返回数字的ascii码

将表示总和的数字字符相加?在Java中,不能使用尚未声明的变量。例如,当您尝试
boolean isTrue=Character.isDigit(string1.charAt(i))
i
还不存在。
Integer.parseInt(String.valueOf(string1.charAt(i)))
Character.getNumericValue(string1.charAt(i))