用户输入和输出

时间:2011-03-01 19:50:07

标签: java swing

我已经启动了一些代码,我希望能够输入不超过五个数字的数字,并且返回结果将在每个数字之间放置5个空格。因此,例如我可以键入12345,然后框输出将显示1 2 3 4 5。 所以首先我需要能够只输入5个数字,其次每个数字之间需要5个空格。

String number;
int number1;

number = JOptionPane.showInputDialog("Enter Number"); 
number1 = Integer.parseInt(number);

JOptionPane.showMessageDialog(null,"Th… new result is" + number1,"Results",
JOptionPane.PLAIN_MESSAGE);
System.exit(0);

由于

3 个答案:

答案 0 :(得分:0)

首先,不需要将输入转换为int,因为您没有将它用于任何数值计算。您可以使用if语句轻松解决问题的第一部分。

if (number.length() > 5) ...

对于第二部分,我想有很多很好的方法可以做到,也可能是一些库,但我提出了:

public static String addSpace(String s){
    StringBuilder result = new StringBuilder();
    for (char c : s.toCharArray())
        result.append(c).append(' ');
    return result.toString();
}

所以你用数字作为参数调用addSpace方法。

答案 1 :(得分:0)

我没有完全理解你的意思,但我认为它会做你想要的!

public static void main(String [] args)
    {
        String number;
        number = JOptionPane.showInputDialog("Enter Number"); 
        int b = number.length() ;
        char [] a = new char [number.length() ] ;
        for ( int i = 0 ; i < number.length()  ;i++)
            a[i] = number.charAt(i) ;
        for (int i = 0 ; i < a.length  ; i++)
            {
                number += ( a[i] );
                number += ' ' ;
            }
        number = number.substring(b) ;
        JOptionPane.showMessageDialog(null,"Th… new result is" + ' ' +  number,"Results",
                JOptionPane.PLAIN_MESSAGE) ;
        System.exit(0);
    }

答案 2 :(得分:0)

使用JOptionPane.showInputDialog(...)无法动态验证输入(即检查它只包含数字并且只有5个字符长),您必须在用户之后执行此操作发送了它,如果它无效则抛出一个新的对话框。它有效,但它不是最漂亮的方式。也许您应该考虑编写一个自定义对话框,使用添加到对话框中输入文本字段的DocumentListener来验证输入。你可以阅读它here(对于CustomDialog来说是ctrl-f)。

如果您认为对于手头的任务来说太复杂了,这可能是一个很好的方法来做show-validate-showagainifinvalid的东西:

private String showInputDialog()
{
    String inputValue = JOptionPane.showInputDialog("Please input 5 numbers from 0-9");

    if(inputValue == null || inputValue.isEmpty() || !inputValue.matches("[0-9]{5}"))
    {
        inputValue = showInputDialog();
    }

    return inputValue;
}

然后在其中一个答案中使用addSpace方法。