2014-02-26 40 views
-9

我有一個任務,我必須一個int轉換成的像這樣一串數字,轉換一個int到個人數字組成的字符串在java中

123:一二三

193:一九三我不能使用String.valueof()方法,然後轉換爲char數組!還有什麼其他的方式呢?模?

+8

這個網站是不是做你的功課,而是要糾正你的代碼。 – AntonH

+1

爲什麼你不能遍歷字符? –

+0

將數字除以100,得到該整數並將其改爲「String」,然後減去該部分併除以10 ... –

回答

0

步驟1:將您的INT爲一個字符串(新的整數(123)的ToString())

步驟2:在你的串迴路(每個字符)

步驟3:在環,必須9上的值的開關,從0它打印表示數字

實際Word,以便將看起來像:

String intStringValue = new Integer(123).toString(); 
for(char c : intStringValue.toCharArray()) { 
    int digit = Integer.parseInt(new String(new char[] {c})); 
    switch(digit){ 
     case 0: System.out.print("zero "); break; 
     case 1:.... 
    } 
} 
+0

這一定會幫助OP學習... –

+1

這也是更多或更少使用String.valueof(),然後轉換爲char數組,該數組被明確指出是無效的解決方案。 – turbo

0
public class HelloWorld{ 

    public static void main(String []args) 
    { 
     String values[]={"zero","one","two","three","four","five","six","seven","eight","nine"}; 
     int number=453; 
     String num=Integer.toString(number); 
     for(int i=0;i<num.length();i++) 
      { 
      char index=num.charAt(i); 
      System.out.print(values[Character.getNumericValue(index)]); 
} }} 

你可以試試這個解決方案。有用。

0

那麼我不會給你任何代碼,但可能是一些段落形式的僞代碼和一個想法,讓你在盒子外思考,因爲你不會總是有一個預製的方法爲你準備好。作爲最壞的情況,如果你找不到另一種方法,請考慮如何分解它。

什麼數字系統是格式化輸入?它是二進制,十六進制,十進制嗎?找出該數字系統中任何給定數字的可能值範圍,並創建一個或兩個代碼來確定該範圍內的哪個數字。

在二進制中,我們知道一個數字可以是1或0,因此對於任意長度的連續數字中的每個可能數字,我們知道這些數字只有兩個可能的字符串表示是「一個」和「零」。

您不應該需要在分析數字時使用單一方法,也不需要使用方法連接到要創建的字符串上。

如果您嘗試將數字處理爲它真正表示的整數,那麼您可以擁有與int數據類型一樣大的任意數量的可能性(2爲32的冪數= 4294967296個可能的數字組合)可能性檢查,你會更好地寫一個程序來編寫你的程序塊),但如果你一個一個地處理int數字,你可以 - 在最差的情況下 - 10個可能的組合(0-9)乘以數字的數量,最多10個數字的整數(以十進制形式)。而且,在前一種情況下,你必須在一次巨大的荒誕迭代中檢查每一個數字。在後一種情況下,您只需檢查10個值,並根據數字中的數字數量重複1-10次(包括1-10次)。

enter image description here

相關問題