返回数组中每个数字的最后一位
Returning the last digit of every number in an array
我的问题是我试图 return int 数组中每个元素的最后一位,但下面的函数 return 是数组的最后一个元素。我该怎么做。
数组:{10, 12, 41, 23, 71}
预期输出:0、2、1、3、1
public class TestForEachLoop
{
private int[] iLoop = new int[5];
public int getLastDigit(){
int[] iLoop = new int[]{10, 12, 41, 23, 71};
int lastnumber = iLoop[iLoop.length - 1];
return lastnumber;
}
}
您需要使用 for 循环遍历数组。
for (int i = 0; i < array.length; i++ ) {
// do something with array[i]
}
要获取每个数字的最后一位,您应该使用余数 %
运算符。对于两个数字 m
和 n
,m % n
returns m divided by n
的余数。当心您可能还需要使用 Math.abs()
的负数。
您可以使用modulo
运算符获取数字的最后一位,然后使用Math
class 中的abs
方法获取正值。
public class Main {
public static int getLastDigit(int n){
int lastDigit = Math.abs(n % 10);
return lastDigit;
}
public static void main(String[] args){
int[] iLoop = new int[]{10, 12, 41, 23, 71};
for(int i = 0; i < iLoop.length; i++){
System.out.print(getLastDigit(iLoop[i]) + " ");
}
}
}
您可以通过使用取模 '%'
运算(更多关于它 here)结合 Math.abs()
来检索数字的最后一位,以避免进入负数问题。 然后您只需将该逻辑应用于数组的每个元素。
您可以很好地使用来自 Java 8 的流:
int[] iLoop = new int[]{10, 12, 41, 23, 71};
Arrays.stream(iLoop).forEach(n -> System.out.print(Math.abs(n) % 10 + " "));
以运行为例:
import java.util.Arrays;
class Main {
public static void main(String args[]) {
int[] iLoop = new int[]{10, 12, 41, 23, 71};
Arrays.stream(iLoop).forEach(n -> System.out.print(Math.abs(n) % 10 + " "));
}
}
public int getLastDigit(int number){
String sNumber=Integer.toString(number);
return Integer.parseInt(String.valueOf(sNumber.charAt(sNumber.length() - 1))); //parseInt only accept String value
}
public int[] getVectorLastNumbers(int[] numbers){
int[] lastNumbers=new int[numbers.length];
for(int i=0;i<numbers.length;i++){
lastNumbers[i]=getLastDigit(numbers[i]);
}
return lastNumbers;
}
我的问题是我试图 return int 数组中每个元素的最后一位,但下面的函数 return 是数组的最后一个元素。我该怎么做。
数组:{10, 12, 41, 23, 71}
预期输出:0、2、1、3、1
public class TestForEachLoop
{
private int[] iLoop = new int[5];
public int getLastDigit(){
int[] iLoop = new int[]{10, 12, 41, 23, 71};
int lastnumber = iLoop[iLoop.length - 1];
return lastnumber;
}
}
您需要使用 for 循环遍历数组。
for (int i = 0; i < array.length; i++ ) {
// do something with array[i]
}
要获取每个数字的最后一位,您应该使用余数 %
运算符。对于两个数字 m
和 n
,m % n
returns m divided by n
的余数。当心您可能还需要使用 Math.abs()
的负数。
您可以使用modulo
运算符获取数字的最后一位,然后使用Math
class 中的abs
方法获取正值。
public class Main {
public static int getLastDigit(int n){
int lastDigit = Math.abs(n % 10);
return lastDigit;
}
public static void main(String[] args){
int[] iLoop = new int[]{10, 12, 41, 23, 71};
for(int i = 0; i < iLoop.length; i++){
System.out.print(getLastDigit(iLoop[i]) + " ");
}
}
}
您可以通过使用取模 '%'
运算(更多关于它 here)结合 Math.abs()
来检索数字的最后一位,以避免进入负数问题。 然后您只需将该逻辑应用于数组的每个元素。
您可以很好地使用来自 Java 8 的流:
int[] iLoop = new int[]{10, 12, 41, 23, 71};
Arrays.stream(iLoop).forEach(n -> System.out.print(Math.abs(n) % 10 + " "));
以运行为例:
import java.util.Arrays;
class Main {
public static void main(String args[]) {
int[] iLoop = new int[]{10, 12, 41, 23, 71};
Arrays.stream(iLoop).forEach(n -> System.out.print(Math.abs(n) % 10 + " "));
}
}
public int getLastDigit(int number){
String sNumber=Integer.toString(number);
return Integer.parseInt(String.valueOf(sNumber.charAt(sNumber.length() - 1))); //parseInt only accept String value
}
public int[] getVectorLastNumbers(int[] numbers){
int[] lastNumbers=new int[numbers.length];
for(int i=0;i<numbers.length;i++){
lastNumbers[i]=getLastDigit(numbers[i]);
}
return lastNumbers;
}