2016-04-30 43 views
0

我有這樣的代碼:倒車數字的隨機量

int rev=0; 
int opt=Integer.parseInt(JOptionPane.showInputDialog("How many numbers do you need?")); 
for (int i=0; i<numbers; i++) { 
    int numbers=Integer.parseInt(JOptionPane.showInputDialog("Add your numbers")); 
    while (numbers != 0) { 
     rev=rev*10; 
     rev=rev+numbers%10; 
     numbers=numbers/10; 
    } 
} 
JOptionPane.showMessageDialog(null,"Your numbers are "+rev); 

它完美的罰款。我希望這些數字能夠顛倒過來。它的確如此,但它必須是多個數字。

例子:比方說,我想2號:123456輸出將321654

我的問題是,如果我想3個數字:123我如何使它所以它會打印321,因爲如果我添加一個數字,它不起作用。

對不起,如果沒有意義或我的問題沒有解釋太多。

+1

這兩種算法完全是_different_。在第一種情況下,你拿這兩個數字,反轉每一個,並將它們串聯在原始訂單中。在第二種情況下,你用_reverse order_連接它們。這裏有什麼規則?如果我有'123,1,2,3,456',會發生什麼? –

+0

對不起,我以爲我提到過它。我想要第二個。我的意思是說,它只能在第一個中正確運行。 '123,1,2,3,456'將是'456,3,2,1,123' – jessss

+0

只需使用['Collections.reverse'](https://docs.oracle.com/javase/8/docs /api/java/util/Collections.html#reverse-java.util.List-)。 –

回答

0

像這樣的東西應該工作(其未測試)

String res=""; 
Integer opt=Integer.parseInt(JOptionPane.showInputDialog("How many numbers do you need?")); 
for (int i=0; i<opt; i++) { 
    String numbers=JOptionPane.showInputDialog("Add your numbers"); 
    res = new StringBuilder(numbers).reverse().toString() + res; 
} 
JOptionPane.showMessageDialog(null,"Your numbers are "+res); 

或者這

String res=""; 
Integer opt=Integer.parseInt(JOptionPane.showInputDialog("How many numbers do you need?")); 
for (int i=0; i<opt; i++) { 
    String numbers=JOptionPane.showInputDialog("Add your numbers"); 
    res += numbers; 
} 
String reversedString = new StringBuilder(res).reverse().toString(); 
JOptionPane.showMessageDialog(null,"Your numbers are "+ reversedString); 
0

你可以把這些數字在一個ArrayList,然後用Collections.reverse(列表),讓他們以相反的順序。

0

您需要反轉每個項目的內部字符順序,然後顛倒項目提供給您的順序。

ArrayList<StringBuilder> reversedNumbers = new ArrayList<StringBuilder>(); 
    for (/*your for loop condition here...*/) { 
     String sNumber = /*ask the user for a string here...*/ 
     StringBuilder reversedNumber = new StringBuilder(sNumber).reverse(); 
     reversedNumbers.add(reversedNumber); 
    } 
    Collections.reverse(reversedNumbers);/*finally reverse the colection*/ 
    JOptionPane.showMessageDialog(null,"Your numbers are "+ reversedNumbers);