我已经启动了一些代码,我希望能够输入不超过五个数字的数字,并且返回结果将在每个数字之间放置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);
由于
答案 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
方法。