检索数字的第一个数字

时间:2010-06-03 16:28:13

标签: java type-conversion

我正在学习Java,并且正在尝试让我的程序检索数字的第一个数字 - 例如543应该返回5,等等。我想转换为字符串,但我不知道如何转换回来了?谢谢你的帮助。

int number = 534;
String numberString = Integer.toString(number);
char firstLetterChar = numberString.charAt(0);
int firstDigit = ????

9 个答案:

答案 0 :(得分:29)

几乎肯定比使用字符串更有效:

int firstDigit(int x) {
    while (x > 9) {
        x /= 10;
    }
    return x;
}

(仅适用于非负整数。)

答案 1 :(得分:24)

    int number = 534;
    int firstDigit = Integer.parseInt(Integer.toString(number).substring(0, 1));

答案 2 :(得分:18)

firstDigit = number/((int)(pow(10,(int)log(number))));

这应该使用数学而不是字符串来获得你的第一个数字。

在您的示例中,log(543)= 2.73,其中转换为int为2。 pow(10,2)= 100 543/100 = 5.43但是由于它是一个int,它会被截断为5

答案 3 :(得分:3)

JWTAuth::attempt(array $credentials = [], array $customClaims = [])
java中的

(/)运算符在不考虑提醒的情况下划分数字,所以当我们将534除以100时,它给出了我们(5)。

但如果您想获取最后一个号码,可以使用(%)运算符

int number = 534;
int firstDigit = number/100; 

它提醒我们划分,所以534%10,将产生数字4。

答案 4 :(得分:1)

int number = 534;
String numberString = "" + number;
char firstLetterchar = numberString.charAt(0);
int firstDigit = Integer.parseInt("" + firstLetterChar);

答案 5 :(得分:0)

Integer.parseInt将获取一个字符串并返回一个int。

答案 6 :(得分:0)

int firstDigit = Integer.parseInt(Character.toString(firstLetterChar));

答案 7 :(得分:0)

此示例适用于任何双精度数,而不仅仅是正整数,并考虑负数或小于一的数。例如,0.000053将返回5.

private static int getMostSignificantDigit(double value) {
    value = Math.abs(value);
    if (value == 0) return 0;
    while (value < 1) value *= 10;
    char firstChar = String.valueOf(value).charAt(0);
    return Integer.parseInt(firstChar + "");
}

要获得第一个数字,这会使用字符串操作,因为它更容易阅读。

答案 8 :(得分:0)

如果您不想使用str方法

,这种方式可能更有意义
protected void Calendar1_DayRender(object sender, DayRenderEventArgs e)
{
   DataTable dt = new DataTable();
   dt = bl.Get_detailsbydate(bo);
   string dates = dt.Rows[0]["EventDate"].ToString();// Confirm if you  EventDate is in a same format to calendar

   if (e.Day.Date == dates)
   { 
        e.Day.IsSelectable = false;
        e.Cell.BackColor = System.Drawing.Color.Red;
   }


}