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

时间:2018-01-26 17:28:15

标签: java boolean

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

我的老师要我添加数字(数字)字符并将其输出为"您的数字加起来是:这里添加了数字" 并输出字母是一个字符串说"这些是你的字母:*在这里放置字母。"

我认为我的代码是正确的,它决定了它是否是一个数字,但我最终如何添加它们?我尝试使用if语句检查Character.isDigit是否为true但我一直收到错误,我认为我写的完全错了。任何回复都将不胜感激。

这是我的代码:

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);
        }

    }




}

}

2 个答案:

答案 0 :(得分:1)

由于i未在此行之前声明

,因此您将收到以下编译错误
boolean isTrue = Character.isDigit(string1.charAt(i));

而是应该使用false

初始化它
boolean isTrue = false;

然后,你的循环应该循环到给定的字符串长度,但你已经硬编码为5,这将在字符串长度小于5时在运行时导致异常。

 for(int i = 0; i < 5; i++)

应该改为

 for(int i = 0; i < string1.length(); i++)

此外,在for循环内部,您有以下代码行,但您从未在循环内更改isTrue值。

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

而且,我认为,正确地更改isTrue值,您要检查数字。

if (Character.isDigit(string1.charAt(i)))
{
    sum1 += Character.getNumericValue(string1.charAt(i));
    isTrue = true;
}

答案 1 :(得分:0)

你应该使用

Integer.parseInt(String.valueOf(string1.charAt(i)))

返回数字,而不是

Character.getNumericValue(string1.charAt(i))

返回数字

的ascii代码