整数位数和整数位数

时间:2011-07-14 06:32:48

标签: java int

示例int i=185;

然后我想得到'我'包含3位数字,这些数字是1,8和5。

5 个答案:

答案 0 :(得分:8)

提示:您需要将数字的模数乘以10才能得到最后一位数字。然后将相同的数字除以10,得到前两个数字。根据需要多次重复自己。

答案 1 :(得分: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);
    }
}

答案 2 :(得分:2)

执行此操作的简单方法是转换为与语言环境无关的字符串,然后查看字符串中的每个字符。如果这是家庭作业,我不会给出最终解决方案,但这里有一些重要的API ...

转换为字符串:

String stringForm = Integer.toString(number);

处理否定信息:

int nonNegative = Math.abs(number);

字符串的长度:

int length = stringForm.length();

获取字符串的第i个字符:

char c = stringForm.charAt(i);

答案 3 :(得分: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)));
    }

然后你可以处理这个集合。

答案 4 :(得分:0)

对于积分i,Math.ceil(Math.log10(i))也给出了小数位数。

相关问题