2016-10-09 31 views
3

所以我正在編寫一個小型的加密程序。我首先要求用戶輸入一個4位數字(> = 1000和< = 9999)。我想從用戶輸入的數字中提取每個數字,並將它們存儲在一個變量中。提取int中的每個數字

我的任務給了我一些幫助不大的提示(提示:整數除法和模數可能在這裏有用)。

+0

您也可以將整數轉換爲字符串,將字符串拆分爲不同的數字,然後將每個數字轉換爲整數。 – Logan

回答

4

的「暗示」實際上是怎麼做你需要做的幾乎直接的解釋:在十個整數除以擺脫了最後一位,而獲得模10給你的最後一個數字:

int x = 12345; 
int lastDigit = x % 10;  // This is 5 
int remainingNumber = x/10; // This is 1234 

直到剩下的數字爲零爲止,循環執行此操作。這會給你數字的倒數。

+0

因此最後一位數字將存儲在「lastDigit」中,其餘數字存儲在「remainingNumber」中。所以下一步就是再次循環,直到沒有剩下數字(或零的餘數)。除非我誤解,否則會改變變量中分配的數字。 – JKawa

+0

這就是問題要求我做的事情:提取每個數字並將它們保存到四個int變量中。 (提示:整數除法和模數可能在這裏有用)。 e)用每個數字加上(該數字的總和加上7)模數10來加密每個數字。用第3個數字和第4個數字交換第1個數字。 – JKawa

+0

@JKawa然後你不需要循環。你知道如何取最後一位數字,以及如何取消最後一位數字。創建四個變量'digit0','digit1','digit2'和'digit3',逐個賦值,修改一個單獨的變量,比如'y',而不是修改'x'。 – dasblinkenlight

0

您可以使用Integer.toString(int),然後按索引尋址每個數字。

int x = 1234; 
char[] s = Integer.toString(x).toCharArray(); 
System.out.println(s[0]); 
System.out.println(s[1]); 
System.out.println(s[2]); 
System.out.println(s[3]); 

如果你不想你的字符串轉換爲一個數組,你可以使用.charAt(int n)方法上的字符串。

int x = 1234; 
String s = Integer.toString(x); 
System.out.println(s.charAt(0)); 
+0

爲什麼這會降低投票率?可能不是作業需要什麼,但肯定沒有錯。 –

+0

我有點倉促,忘記了你不能在java中索引字符串... – kpie

相關問題