2011-03-02 198 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 "部分添加它們。