Java-打印数字的最后一位数字以及前一位数字

Java-打印数字的最后一位数字以及前一位数字,java,for-loop,return,division,modulus,Java,For Loop,Return,Division,Modulus,如果我想打印数字的最后一位(比如16),我使用:number%10,输出为6。如果我想打印最后一个数字之前的数字,我可以将数字除以10并转换为int。这只适用于数字!如果我想获得6之前的数字,我肯定会获得0,但挑战是获得相同的数字,而不是0。这是怎么回事?我不确定,但我想你被什么东西弄糊涂了。这是直接的数学方法: int i = 16; int lastDigit = i % 10; int precedingDigit = (i / 10) % 10; 在Java中,进行整数除法时,结果总是

如果我想打印数字的最后一位(比如16),我使用:number%10,输出为6。如果我想打印最后一个数字之前的数字,我可以将数字除以10并转换为int。这只适用于数字!如果我想获得6之前的数字,我肯定会获得0,但挑战是获得相同的数字,而不是0。这是怎么回事?

我不确定,但我想你被什么东西弄糊涂了。这是直接的数学方法:

int i = 16;
int lastDigit = i % 10;
int precedingDigit = (i / 10) % 10;
在Java中,进行整数除法时,结果总是向零舍入


对于您提供的示例,在5的情况下。您希望两次获得相同的数字:

int i = 5;
int lastDigit = i % 10;
int precedingDigit = (i == lastDigit) ? lastDigit : ((i / 10) % 10);

我不确定,但我想你被什么东西弄糊涂了。这是直接的数学方法:

int i = 16;
int lastDigit = i % 10;
int precedingDigit = (i / 10) % 10;
在Java中,进行整数除法时,结果总是向零舍入


对于您提供的示例,在5的情况下。您希望两次获得相同的数字:

int i = 5;
int lastDigit = i % 10;
int precedingDigit = (i == lastDigit) ? lastDigit : ((i / 10) % 10);

我不确定,但我想你被什么东西弄糊涂了。这是直接的数学方法:

int i = 16;
int lastDigit = i % 10;
int precedingDigit = (i / 10) % 10;
在Java中,进行整数除法时,结果总是向零舍入


对于您提供的示例,在5的情况下。您希望两次获得相同的数字:

int i = 5;
int lastDigit = i % 10;
int precedingDigit = (i == lastDigit) ? lastDigit : ((i / 10) % 10);

我不确定,但我想你被什么东西弄糊涂了。这是直接的数学方法:

int i = 16;
int lastDigit = i % 10;
int precedingDigit = (i / 10) % 10;
在Java中,进行整数除法时,结果总是向零舍入


对于您提供的示例,在5的情况下。您希望两次获得相同的数字:

int i = 5;
int lastDigit = i % 10;
int precedingDigit = (i == lastDigit) ? lastDigit : ((i / 10) % 10);

一个简单的实现可以如下所示:

import static java.lang.Math.abs;
import static java.lang.Math.max;
import static java.lang.Math.min;

public static void main(String[] args) {
   System.out.println(getNthNumber(-16, -14)); // 1
   System.out.println(getNthNumber(16, -14)); // 1
   System.out.println(getNthNumber(16, 0)); // 1
   System.out.println(getNthNumber(16, 1)); // 6
   System.out.println(getNthNumber(16, 4)); // 6
   System.out.println(getNthNumber(12345678, 4)); // 5
}

static int getNthNumber(final int pNumber, final int pIndex) {
   final String numberString = Integer.toString(abs(pNumber));
   return numberString.charAt(max(0, min(pIndex, numberString.length() - 1))) - '0';
}

一个简单的实现可以如下所示:

import static java.lang.Math.abs;
import static java.lang.Math.max;
import static java.lang.Math.min;

public static void main(String[] args) {
   System.out.println(getNthNumber(-16, -14)); // 1
   System.out.println(getNthNumber(16, -14)); // 1
   System.out.println(getNthNumber(16, 0)); // 1
   System.out.println(getNthNumber(16, 1)); // 6
   System.out.println(getNthNumber(16, 4)); // 6
   System.out.println(getNthNumber(12345678, 4)); // 5
}

static int getNthNumber(final int pNumber, final int pIndex) {
   final String numberString = Integer.toString(abs(pNumber));
   return numberString.charAt(max(0, min(pIndex, numberString.length() - 1))) - '0';
}

一个简单的实现可以如下所示:

import static java.lang.Math.abs;
import static java.lang.Math.max;
import static java.lang.Math.min;

public static void main(String[] args) {
   System.out.println(getNthNumber(-16, -14)); // 1
   System.out.println(getNthNumber(16, -14)); // 1
   System.out.println(getNthNumber(16, 0)); // 1
   System.out.println(getNthNumber(16, 1)); // 6
   System.out.println(getNthNumber(16, 4)); // 6
   System.out.println(getNthNumber(12345678, 4)); // 5
}

static int getNthNumber(final int pNumber, final int pIndex) {
   final String numberString = Integer.toString(abs(pNumber));
   return numberString.charAt(max(0, min(pIndex, numberString.length() - 1))) - '0';
}

一个简单的实现可以如下所示:

import static java.lang.Math.abs;
import static java.lang.Math.max;
import static java.lang.Math.min;

public static void main(String[] args) {
   System.out.println(getNthNumber(-16, -14)); // 1
   System.out.println(getNthNumber(16, -14)); // 1
   System.out.println(getNthNumber(16, 0)); // 1
   System.out.println(getNthNumber(16, 1)); // 6
   System.out.println(getNthNumber(16, 4)); // 6
   System.out.println(getNthNumber(12345678, 4)); // 5
}

static int getNthNumber(final int pNumber, final int pIndex) {
   final String numberString = Integer.toString(abs(pNumber));
   return numberString.charAt(max(0, min(pIndex, numberString.length() - 1))) - '0';
}


那么用
%100
来代替呢?你的号码是什么类型的?我认为正确的方法不是直接处理数字,而是处理它的
字符串
表示形式。如果它不是数字,那么它是什么?请提供示例输入和预期输出。您的问题很难解密:1。“我可以将数字除以10,然后转换为int”-根据您在上面使用的
%
事实,它已经是一个
int
。因此,您只需将其除以10,然后对结果使用
%10
。2.“这只适用于数字”-我们在这里谈论的是数字以外的任何东西吗?如果是,那么在你的问题中就没有这个事实的痕迹。3.“如果我想得到6前面的数字,我肯定会得到0”。。。你到底想说什么?用
%100
来代替怎么样?你的号码是什么类型的?我认为正确的方法不是直接处理数字,而是处理它的
字符串
表示形式。如果它不是数字,那么它是什么?请提供示例输入和预期输出。您的问题很难解密:1。“我可以将数字除以10,然后转换为int”-根据您在上面使用的
%
事实,它已经是一个
int
。因此,您只需将其除以10,然后对结果使用
%10
。2.“这只适用于数字”-我们在这里谈论的是数字以外的任何东西吗?如果是,那么在你的问题中就没有这个事实的痕迹。3.“如果我想得到6前面的数字,我肯定会得到0”。。。你到底想说什么?用
%100
来代替怎么样?你的号码是什么类型的?我认为正确的方法不是直接处理数字,而是处理它的
字符串
表示形式。如果它不是数字,那么它是什么?请提供示例输入和预期输出。您的问题很难解密:1。“我可以将数字除以10,然后转换为int”-根据您在上面使用的
%
事实,它已经是一个
int
。因此,您只需将其除以10,然后对结果使用
%10
。2.“这只适用于数字”-我们在这里谈论的是数字以外的任何东西吗?如果是,那么在你的问题中就没有这个事实的痕迹。3.“如果我想得到6前面的数字,我肯定会得到0”。。。你到底想说什么?用
%100
来代替怎么样?你的号码是什么类型的?我认为正确的方法不是直接处理数字,而是处理它的
字符串
表示形式。如果它不是数字,那么它是什么?请提供示例输入和预期输出。您的问题很难解密:1。“我可以将数字除以10,然后转换为int”-根据您在上面使用的
%
事实,它已经是一个
int
。因此,您只需将其除以10,然后对结果使用
%10
。2.“这只适用于数字”-我们在这里谈论的是数字以外的任何东西吗?如果是,那么在你的问题中就没有这个事实的痕迹。3.“如果我想得到6前面的数字,我肯定会得到0”。。。你到底想说什么????这是一种过度的杀伤力,IMHO。但它起作用了:-)对于大数字来说也是如此是的,这是真的。PS:我编辑您的答案是为了消除对字符串的不必要的强制转换,并将其解析为整数back.Thx;-)我添加了对IndexOutofBoundException的检查,还有一些例子,这是一个过分的做法,但它起作用了:-)对于大数字也是如此是的,这是真的。PS:我编辑您的答案是为了消除对字符串的不必要的强制转换,并将其解析为整数back.Thx;-)我添加了对IndexOutofBoundException的检查,还有一些例子,这是一个过分的做法,但它起作用了:-)对于大数字也是如此是的,这是真的。PS:我编辑你的答案是为了消除对字符串和pa的不必要的转换