Java 如何捕获该程序返回的所有值? 公共类测试{ 静态整数n位数(整数编号,整数n) { 整数位数=0; 对于(int i=0;i=0 数字=数字%10; 数目/=10; } 返回数字; } 公共静态void main(字符串参数[]){ 系统输出打印项次(第n位数(2314,4)); } }
现在这个程序的输出是0 当我执行单元测试时,它首先返回4,然后分别返回1,3,2 我不知道我在哪里犯了这个错误,还有其他方法可以得到输出4,1,3,2吗Java 如何捕获该程序返回的所有值? 公共类测试{ 静态整数n位数(整数编号,整数n) { 整数位数=0; 对于(int i=0;i=0 数字=数字%10; 数目/=10; } 返回数字; } 公共静态void main(字符串参数[]){ 系统输出打印项次(第n位数(2314,4)); } },java,Java,现在这个程序的输出是0 当我执行单元测试时,它首先返回4,然后分别返回1,3,2 我不知道我在哪里犯了这个错误,还有其他方法可以得到输出4,1,3,2吗 分别……代码中的错误出现在return语句中/或您对它的使用中 public class Test { static int nthDigit(int number, int n) { int digit = 0; for (int i = 0; i <= n; i++) { // Ass
分别……代码中的错误出现在return语句中/或您对它的使用中
public class Test {
static int nthDigit(int number, int n)
{
int digit = 0;
for (int i = 0; i <= n; i++) { // Assumes n is >= 0
digit = number % 10;
number /= 10;
}
return digit;
}
public static void main(String args[]) {
System.out.println(nthDigit(2314, 4));
}
}
如果您希望将字符串4 3 2 1写入输出流,那么您可能希望这样做
digit = number % 10;
静态字符串n位(整数编号,整数n)
{
字符串数字=0;
对于(int i=0;i=0
数字+=(数字%10).ToString();
数目/=10;
}
返回数字;
}
注意,我更改了方法的返回类型,并将用于填充数字的运算符从“=”更改为“+=”,以确保捕获所有值
如果您希望返回值的总和,那么您可以这样更改代码
static String nthDigit(int number, int n)
{
String digit = 0;
for (int i = 0; i <= n; i++) { // Assumes n is >= 0
digit += (number % 10).ToString();
number /= 10;
}
return digit;
}
静态整数n位数(整数,整数n)
{
整数位数=0;
对于(int i=0;i=0
**数字+=数字%10**
数目/=10;
}
返回数字;
}
我将int返回类型还原为原来的类型,但保留了先前对运算符所做的更改。static int nthDigit(int number,int n)
static int nthDigit(int number, int n)
{
int digit = 0;
for (int i = 0; i <= n; i++) { // Assumes n is >= 0
**digit += number % 10;**
number /= 10;
}
return digit;
}
{
n=String.valueOf(number).length()-n;
整数位数=0;
对于(int i=0;i您还可以执行以下操作:
static int nthDigit(int number, int n)
{
n = String.valueOf(number).length() - n;
int digit = 0;
for (int i = 0; i <= n; i++) {
digit = number % 10;
number /= 10;
}
return digit;
}
public static void main(String args[]) {
System.out.println(nthDigit(2314, 1)); // 2
System.out.println(nthDigit(2314, 2)); // 3
System.out.println(nthDigit(2314, 3)); // 1
System.out.println(nthDigit(2314, 4)); // 4
}
您想要字符串输出吗?获取前4位数字?我不理解这个问题。很好,但您应该执行n-1,n
,因为字符串索引从0开始。例如,如果n
为4,将引发异常。
return new Integer(String.valueOf(number).substring(n-1,n));