Java - 循环数字字符串

时间:2015-06-05 15:28:38

标签: java swing loops

昨天你们在我遇到这个问题的第一个问题时我们都非常乐于助人,我想知道是否有一种方法可以修改我的最终产品(道歉,如果我的格式化已经关闭 - 仍然试图在我的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 + " "

我想我不会抓住哪一部分。

仅供参考,这是一项家庭作业,所以我不一定想要一个彻头彻尾的答案,但我觉得我太近了,我需要额外注意一下,看看我能做些什么。 (我已经阅读过阵列等等,但我们还没有达到这一点,所以我认为我还不会走这条路。)

3 个答案:

答案 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!");