2011-03-02 197 views
2

我想要下面的代码,并将5个数字字符串输入到框中,并在每个数字之间输出5个空格。所以我可以输入12345,输出将是1 2 3 4 5拆分一个字符串

我不知道如何做到这一点,或者在哪里插入代码。

String number; 

while (true) 
{ 
number = JOptionPane.showInputDialog("Enter Number");  

if(number.length() >5) 
{ 
JOptionPane.showMessageDialog(null,"Please enter a 5 digit number!","Try again", 
     JOptionPane.PLAIN_MESSAGE); 
    } 
else break; 
} 
JOptionPane.showMessageDialog(null,"The new result is " + number,"Results", 
     JOptionPane.PLAIN_MESSAGE); 

     System.exit(0); 

感谢

+1

我认识到这个代码示例是您家庭作业的一部分。请注意,作业分配的标题是“练习算术操作符”,因此您可能希望使用算术运算符而不是正则表达式或字符串操作。提示:除法运算符(/)和余数(%)使得这非常容易。 – micco 2011-03-02 14:52:14

回答

9

正则表达式是如此有趣,这个代码只是每个数字后面加上一个空格:

String numbers = "12345"; 
numbers = numbers.replaceAll("(\\d)", "$1 ").trim(); 
+1

非常优雅的解决方案 – 2011-03-02 14:14:58

+0

它的工作,但我如何使它5空间?现在它有一个空间。 – Mike 2011-03-02 14:20:57

+0

replaceAll()函数与全局标志一样工作,它在每个数字后添加一个空格。 – vaugham 2011-03-02 14:27:24

0

如果由于某种原因,你想有一个非正则表达式的解决方案

String result = ""; 
    for(char c : number.toCharArray()) 
    { 
     result = result + c + " "; 
    } 
    result = result.trim(); 
+4

我来自StringBuilder警察,你在监狱:)只是在开玩笑:) – 2011-03-02 14:39:53

0
System.out.println("12345".replaceAll("(.(?!$))", "$1 ")); 

此附加空间到任何不在字符串末尾的字符(这意味着您不需要拨打.trim())。如果你想要更多的空间,请在"$1 "部分添加它们。