2011-07-14 71 views

回答

3

1解決方法:

/** 
* Using Integer/String classes functionality 
*/ 
public class Shweta { 

    private static Integer i = 185; 

    public static void main(String... args) { 
     String iStr = i.toString(); 
     for (char digit : iStr.toCharArray()) { 
      System.out.println(digit); 
     } 
     System.out.println("Length is: " + iStr.length()); 
    } 

} 

第二個解決方案:

/** 
* Doing that in a 'homework' way 
*/ 
public class ShwetaNoCheats { 

    private static Integer i = 185; 

    public static void main(String... args) { 
     int length = 0; 
     while (i != 0) { 
      System.out.println(i - (i/10) * 10); 
      i /= 10; 
      length++; 
     } 
     System.out.println("Length is: " + length); 
    } 
} 
+3

沒有+1 - 你給OP提供了一個盆栽解決方案,所以他/她不必考慮。 –

+0

該代碼僅向控制檯輸出答案,將該功能與程序的其餘部分集成仍然應由問題作者完成。同意,雖然它是某種盆栽解決方案。 –

+0

@Petro:我相信這是一項任務。在您禮貌之後,現在已經提交了。 ;) –

8

提示:你需要把數的模數乘以10來得到最後一個數字。然後將相同的數字除以10,得到前兩個數字。根據需要重複你自己的次數。

0

一種方法是:

int i = 185; 

int a = i/100;   // 1 
int b = (i % 100)/10; // 8 
int c = i % 10;   // 5 

但我認爲你需要的東西更通用的?通過串

int i = 185; 
String iAsString = String.format("%d", i); 

if(iAsString.contains("1")){ 
    // do something... 
} 

和更先進的嘗試:

int i = 185; 
    String iAsString = String.format("%d", i); 

    HashSet<Integer> set = new HashSet<Integer>(); 
    for(char c : iAsString.toCharArray()){ 
     set.add(Integer.valueOf(String.valueOf(c))); 
    } 

然後你就可以在設定的作業。

+0

如果我只有兩位數或1位數,那麼它怎麼可能是圓頂??例如,而不是我= 185如果我有我= 20或我= 5然後? –

+0

然後通過字符串使用第二種方式。 – powerMicha

2

最簡單的方式做,這是通過轉換爲一個語言環境無關的字符串,然後看着字符串中的每個字符。我不會放棄的情況下,最終的解決方案,這是家庭作業,但這裏有一些重要的API ...

轉換爲字符串:

String stringForm = Integer.toString(number); 

處理底片:

int nonNegative = Math.abs(number); 

的長度串:

int length = stringForm.length(); 

獲取的字符串的第i個字符:

char c = stringForm.charAt(i); 
+2

+1 - 爲了幫助OP學習,不給他/她一個盆栽的解決方案, –

0

對於積分i,Math.ceil(Math.log10(i))也給出了小數位數。