返回数字的第n位数

public class Return { public static void main(String[] args) { int answer = digit(9635, 1); print("The answer is " + answer); } static void print(String karen) { System.out.println (karen); } static int digit(int a, int b) { int digit = a; return digit; } } 

创建一个程序,该程序使用一个名为digit的函数,该函数返回整数参数右侧第n位的值。 n的值应该是第二个参数。

例如: digit(9635, 1)返回5digit(9635, 3)返回6

没有用勺子喂你代码:

第n位是(除以10 n的余数)除以10 n-1


如果你想要一个迭代的方法:

循环n次,每次分配数字变量将数字除以10的结果。
在循环之后,第n个数字是将数字除以10的余数。

FYI余数运算符为% ,因此例如32 % 10 = 2 ,并且整数除法减少余数。

 static int dig(int a, int b) { int i, digit=1; for(i=b-1; i>0; i++) digit = digit*10; digit = (a/digit) % 10; return digit; } 

另一种方法是将数字转换为数组并返回第n个索引

 static char digit(int a,int b) { String x=a+""; char x1[]=x.toCharArray(); int length=x1.length; char result=x1[length-b]; return result; } 

现在以这种方式从你的主方法运行

 System.out.println("digit answer "+digit(1254,3)); 

产量

 digit answer 2 

将数字转换为字符串,然后使用charAt ()方法。

 class X{ static char digit(int a,int n) { String x=a+""; return x.charAt(n-1); } public static void main(String[] args) { System.out.println(X.digit(123, 2)); } } 

您可能需要仔细检查第n个位置是否在数字的长度内:

 static char digit(int a, int n) { String x = a + ""; char digit='\0' ; if (n > 0 && n <= x.length()) { digit = x.charAt(n - 1); } return digit; }