java - 如何使用 boolean 值添加用户输入的数字?

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

    }




}

}

最佳答案

您将收到以下编译错误,因为 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;
}

关于java - 如何使用 boolean 值添加用户输入的数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48466511/

相关文章:

java - 字符串数组的 String.Split() 第二个值未保存到新变量

java - 如何简化if语句?

python - 基于另一列过滤 pandas 数据框

xslt - XSLT 中的 boolean 值 "sum"

java - Java+kotlin项目中moshi的正确使用方法

java - 没有 Spring Data REST 的 Spring 投影

java - 在 JavaConsole 中获取 SonarQube 分析结果

java - 从类对象的方法接收空指针异常

mysql - 使用部分引用的字符串进行全文搜索(mysql)

PHP If 语句在 MySQL boolean 列返回上返回 false