昨天你们在我遇到这个问题的第一个问题时我们都非常乐于助人,我想知道是否有一种方法可以修改我的最终产品(道歉,如果我的格式化已经关闭 - 仍然试图在我的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。
但这是在控制台本身。我试图解决的问题是让它显示在消息框而不是控制台中。
我猜我需要创建一个新的字符串,如(incoming pseudocode):
if (aDigit > 0 && aDigit <= 9){
strNum3 = everycharinStr2 + " "
我想我不会抓住哪一部分。
仅供参考,这是一项家庭作业,所以我不一定想要一个彻头彻尾的答案,但我觉得我太近了,我需要额外注意一下,看看我能做些什么。 (我已经阅读过阵列等等,但我们还没有达到这一点,所以我认为我还不会走这条路。)
答案 0 :(得分:2)
您只需对代码进行一些更改:
strNum2 = String.valueOf(strNum1);
String resultString = "";
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 + " ");
resultString += aDigit + " ";
}
}
JOptionPane.showMessageDialog(null, resultString);
创建一个新的String
,并在每次迭代中将数字附加到此String
,然后在对话框中显示。
答案 1 :(得分:1)
错误已被注释掉。
//if (intNum > 0 && intNum <= 9){
if (intNum < 0 || intNum > 9){
isError = true;
break;
}
//if (aDigit > 0 && aDigit <= 9){
if (aDigit >= 0 && aDigit <= 9){
System.out.print(aDigit + " ");
//resultString+ = aDigit + " ";
resultString += "" + aDigit;
}
//if (isError) {
if (!isError) {
答案 2 :(得分:0)
只需使用JLabel
!
由于您已经使用了挥杆,这将是您的最佳选择。但是你需要一个框架和面板,所以如果你还没有,那就不要这样做了。
JLabel label = new JLabel()
label.setText("Random Text!")
您也可以通过弹出窗口执行此操作:
JOptionPane.showMessageDialog(null, "My String!");