Java-打印数字的最后一位数字以及前一位数字
如果我想打印数字的最后一位(比如16),我使用:number%10,输出为6。如果我想打印最后一个数字之前的数字,我可以将数字除以10并转换为int。这只适用于数字!如果我想获得6之前的数字,我肯定会获得0,但挑战是获得相同的数字,而不是0。这是怎么回事?我不确定,但我想你被什么东西弄糊涂了。这是直接的数学方法: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中,进行整数除法时,结果总是
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的不必要的转换