【发布时间】:2015-08-20 15:08:56
【问题描述】:
昨天你们都帮我克服了这个问题的第一个困难,我想看看是否有办法修改我的最终产品(如果我的格式关闭,请道歉 - 仍在尝试在我的 IDE 中获得正确的缩进.
导入 javax.swing.JOptionPane;
public class NumberLoops {
public static void main(String[] args) {
String strNum1;
String strNum2;
int intNum;
boolean isValid = true;
boolean isError = false;
strNum1 = JOptionPane.showInputDialog ("Enter Number String");
for (int i=0; i<strNum1.length(); i++) {
char c = strNum1.charAt(i);
if (c == '-'){
JOptionPane.showMessageDialog(null, "Negative Digit Found - Enter Positive Numbers Only", "Error", JOptionPane.INFORMATION_MESSAGE);
isValid = false;
break;
}
}
if (isValid){
for (int i=0; i<strNum1.length(); i++) {
char c = strNum1.charAt(i);
intNum = Character.getNumericValue(c);{
if (intNum > 0 && intNum <= 9){
isError = true;
break;
}
}
}
}
if (isError){
int aDigit,totalNum=0;
char chDigit;
strNum2 = String.valueOf(strNum1);
for (int count=0; count<strNum1.length();count++){
chDigit = strNum2.charAt(count);
aDigit = Character.getNumericValue(chDigit);
totalNum += aDigit;
if (aDigit > 0 && aDigit <= 9){
System.out.print(aDigit + " ");
}
}
System.out.print(" " + "The sum is: " + totalNum);
}
}
}
我的问题与最后一个循环有关。如果我在消息提示中输入说 123123,它会通过打印到控制台来按需要运行,它会将该字符串列为 1 2 3 1 2 3,然后是 12 的总数。
但那是在控制台本身。我想要解决的问题是让它显示在消息框而不是控制台中。
我猜我需要创建一个新字符串,例如(传入的伪代码):
if (aDigit > 0 && aDigit <= 9){
strNum3 = everycharinStr2 + " "
我想我没有掌握的部分。
仅供参考,这是一个家庭作业,所以我不一定想要一个直接的答案,但我觉得我已经很接近了,我需要多加注意,看看有没有什么我能做的。 (我已经阅读了数组之类的内容,但我们还没有到那个时候,所以我认为我还不会走这条路。)
【问题讨论】:
-
您的
isError变量名具有误导性。您将isError设置为true并在数字介于 1 和 9 之间(含 1 和 9)进行突破。然后,如果isError设置为true,则显示数字和总和。很混乱。如果我不得不猜测,你真正要做的是将isError设置为true,如果你遇到一个不在1和9之间的字符,然后只在isError是false时显示数字和总和. -
啊,我刚吃完午饭回来看了看我的东西。你是对的,这令人困惑!我会纠正这个。实际上,只有当数字不在 1 和 9 之间时,它才会出错。