42

我需要定义一个数字的最后一位,将其分配给值。在此之后,返回最后一个数字。

我的代码片段无法正常工作...

代码:

public int lastDigit(int number) {
    String temp = Integer.toString(number);
    int[] guess = new int[temp.length()];
    int last = guess[temp.length() - 1];

    return last;
}

问题:

  • 如何解决这个问题?
4

12 回答 12

156

只需返回(number % 10);即取模数。这将比解析输入和输出字符串快得多。

如果number可以是负数,则使用(Math.abs(number) % 10);

于 2013-06-17T10:10:19.467 回答
18

下面是一个更简单的解决方案,如何从 中获取最后一个数字int

public int lastDigit(int number) { return Math.abs(number) % 10; }
于 2013-06-17T10:10:44.763 回答
8

采用

int lastDigit = number % 10. 

阅读有关模运算符:http ://en.wikipedia.org/wiki/Modulo_operation

或者,如果您想采用您的String解决方案

String charAtLastPosition = temp.charAt(temp.length()-1);
于 2013-06-17T10:13:20.737 回答
5

无需使用任何strings。它的负担过重。

int i = 124;
int last= i%10;
System.out.println(last);   //prints 4
于 2013-06-17T10:11:29.477 回答
1

您刚刚创建了一个空整数数组。据我所知,该数组guess不包含任何内容。其余的你应该努力变得更好。

于 2013-06-17T10:10:03.837 回答
1

您的数组没有初始化。所以它会给出默认值零。你也可以这样试试

String temp = Integer.toString(urNumber);
System.out.println(temp.charAt(temp.length()-1));
于 2013-06-17T10:48:49.640 回答
1

不使用'%'

public int lastDigit(int no){
    int n1 = no / 10;
    n1 = no - n1 * 10;
    return n1;
}
于 2015-12-13T18:28:52.350 回答
0

这是你的方法

public int lastDigit(int number)
{
    //your code goes here. 
    int last =number%10;
    return last;
}
于 2013-06-17T10:20:05.427 回答
0
public static void main(String[] args) {

    System.out.println(lastDigit(2347));
}

public static int lastDigit(int number)
{
    //your code goes here. 
    int last = number % 10;

    return last;
}

0/p:

7

于 2014-09-24T17:11:42.847 回答
0

如果您需要字符串结果,请使用 StringUtils:

String last = StringUtils.right(number.toString(), 1);
于 2017-06-21T07:43:20.750 回答
0

另一种有趣的方法是:

int number = 124454;
int overflow = (int)Math.floor(number/(1*10^n))*10^n;

int firstDigits = number - overflow;
//Where n is the number of numbers you wish to conserve</code>

在上面的示例中,如果 n 为 1,那么程序将返回:4

如果 n 为 3,则程序将返回 454

于 2017-12-06T01:37:05.900 回答
-1

尽管最好的方法是使用 % 如果您坚持使用字符串,这将起作用

public int lastDigit(int number)
{
return Integer.parseInt(String.valueOf(Integer.toString(number).charAt(Integer.toString(number).length() - 1)));
}

但我只是为了完整性而写了这个。不要使用此代码。这太可怕了。

于 2017-01-02T20:14:22.327 回答