2011-07-14 17 views

答えて

3

第一ソリューション:

/** 
* 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で割ると、最初の2つの数字が得られます。必要な回数だけ繰り返します。

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

もし私が2桁または1桁しか持たないなら、どうすればドームにすることができますか?i = 185ならばi = 20かi = 5か? –

+0

その後、文字列で2番目の方法を使用します。 – powerMicha

2

これを行うための簡単な方法は、文字列内の各文字を見て、その後、ロケールに依存しない文字列に変換しています。

String stringForm = Integer.toString(number); 

取り扱いネガ:の

int nonNegative = Math.abs(number); 

長さを

は、文字列に変換し...私は、これは宿題である場合には、最終的な解決策を与えていないのですが、ここではいくつかの重要なAPIがあります文字列:

int length = stringForm.length(); 

文字列のi番目の文字を取得する:

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

+1 - OPを助けるためには、 –

0

十進数は、iの場合はMath.ceil(Math.log10(i))によっても与えられます。

関連する問題