我正在为学校作业编写这个程序,要求用户输入一系列字母和数字并确定它是否是数字。
我的老师希望我将数字(数字)字符相加并将其输出为“您加起来的数字是:将添加的数字放在这里” 并输出字母是一个字符串,表示“这些是你的字母:*将字母放在这里。”
我认为我的代码是正确的,可以确定它是否是数字,但我最终如何添加它们?我尝试使用 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/