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

'%'を使用せずに。

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

配列には初​​期化がありません。したがって、デフォルト値ゼロが与えられます。このように試すこともできます

String temp = Integer.toString(urNumber);
System.out.println(temp.charAt(temp.length()-1));
于 2013-06-17T10:48:49.640 に答える
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 に答える