我想在 HW 的整数中找到奇数。所以 countOddigtis(56781) 应该返回( NOT PRINT ) 5 7 1。我的方法是将整数转换为字符串并使用它返回。我遇到的问题是
缺少 return 语句错误,即使我在 if 语句中有 return 语句。有人可以解释这个错误的含义以及如何解决它吗?
当我输入 return x; 时,它会打印 56781 的错误答案 49;在方法的末尾。
Java可以解决吗 stringn.charAt(x) % 2 != 0 考虑到我可能(不确定)将字符串或字符与 int 进行比较?
P.S 保持简单,我不太懂 Java,我刚刚开始。
int countOddigits( int n )
{
int x = 0;
String stringn = Integer.toString(n);
while ( x <= stringn.length() - 1 )
{
if ( stringn.charAt(x) % 2 != 0 )
{
return stringn.charAt(x);
}
x++;
}
}
public void run()
{
System.out.printf("Odd number is %d\n: ", countOddigits(567981) );
}
最佳答案
当您找到第一个奇数位时,您可能不想立即返回。您还需要将结果转换回 int
(以匹配您的返回类型)。您可以使用Integer.parseInt(String)
来解析
它;您可以使用 StringBuilder
构建该 String
。另外,您可以将该方法设置为静态
。就像,
static int countOddDigits(int i) { // <-- camel case, that is camelCase
StringBuilder sb = new StringBuilder();
// for each char ch in the String form of i converted to a character array
for (char ch : String.valueOf(i).toCharArray()) {
if (Character.digit(ch, 10) % 2 != 0) {
sb.append(ch);
}
}
return Integer.parseInt(sb.toString());
}
然后,要测试它,您可以这样调用
public static void main(String[] args) {
int oddDigits = countOddDigits(56781);
System.out.println(oddDigits);
}
哪些输出
571
关于java - 必须在 Dr.Java 中找到奇数,但总是出现缺少返回语句的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46375975/