线程“主”中的异常java.util.IllegalFormatConversionException:d!= java.lang.String

柜台

我是Java的新手,我不确定如何解决在尝试运行此代码时遇到的错误:

import java.util.Scanner;
public class P3_3 
{

    public static void main(String[] args) 
    {
        Scanner in = new Scanner(System.in);
        System.out.print("Please enter a number: ");
        int number = in.nextInt();
        if (number < 0) number *= -1;
        if (number >= 10 && number < 100)
        {
            number = 2;
        }
        else if (number >= 100 && number < 1000)
        {
            number = 3;
        }
        else if (number >= 1000 && number < 10000)
        {
            number = 4;
        }
        else if (number >= 10000 && number < 100000)
        {
            number = 5;
        }
        else if (number >= 100000 && number < 1000000)
        {
            number = 6;
        }
        else if (number >= 1000000 && number < 10000000)
        {
            number = 7;
        }
        else if (number >= 10000000 && number < 100000000)
        {
            number = 8;
        }
        else if (number >= 100000000 && number < 1000000000)
        {
            number = 9;
        }
        else
        {
            System.out.println("Number is greater than 10 billion.");
        }
        System.out.printf("%d has ", number + "digits.");
    }
}

我正在尝试通过检查数字是否为数字>= 10, >= 100等等来打印数字具有的位数。我运行代码,能够输入一个int值,但是一旦输入并按Enter,就可以得到它一个错误,似乎看不到我做错了什么。谁能启发我?

斯蒂法诺·桑菲利波(Stefano Sanfilippo)

问题在这里:

System.out.printf("%d has ", number + "digits.");

%d格式说明需要作为第二个参数传递一个整数printf,而是通过连接number"digits.",你居然通过了String

固定版本:

System.out.printf("has %d digits ", number);

请注意,您不能同时打印原始数字和位数,因为您在number变量中覆盖了一个数字和另一个数字也许使用两个不同的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

java.util.IllegalFormatConversionException:f!= java.lang.String错误

线程“ JavaFX应用程序线程”中的异常java.util.IllegalFormatConversionException:f!= java.lang.Integer

将数字填充为0时出现“ IllegalFormatConversionException:d!= java.lang.String”?

线程“主”中的异常java.lang.OutOfMemoryError:使用util包时的Java堆空间

java.util.IllegalFormatConversionException: f != java.lang.Integer

线程“主”中的异常java.lang.NoClassDefFoundError:org / apache / hadoop / util / Tool

PDFbox异常-线程“主”中的异常java.lang.VerifyError

线程“主”中的异常java.util.NoSuchElementException

线程“主”中的异常java.util.UnknownFormatConversionException:转换=':'

在线程“主”中获取异常java.util.InputMismatchException

线程“主”中的异常java.util.NoSuchElementException错误

线程“主”中的异常java.util.UnknownFormatConversionException:转换='O'

线程“主”中的异常java.util.NoSuchElementException?

线程“主”中的错误异常java.util.InputMismatchException

线程“主”中的异常java.util.NoSuchElementException错误

线程“主”中的异常java.util.UnknownFormatConversionException:Conversion ='。'?

java.util.IllegalFormatConversionException: d != com.example.haoch.sensoring.Blesave

线程“主”中的java异常java.lang.NullPointerException错误

线程“主”中的异常java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:java.lang.String.substring(String.java:1960)-1

线程“主”中的异常java.lang.NoClassDefFoundError:rpc / Stub

线程“主”中的异常java.lang.StackOverflowError问题

线程“主”中的异常java.lang.NoClassDefFoundError

线程“主”中的异常java.lang.UnsupportedClassVersionError:

线程“主”中的异常java.lang.NoClassDefFoundError:scala / Cloneable

获取错误“线程“主”中的异常java.lang.ExceptionInInitializerError”

线程“主”中的异常java.lang.NullPointerException1000

线程“主”中的异常java.lang.IllegalMonitorStateException

线程“主”中的异常java.lang.NoSuchFieldError:TRACE

线程“主”中的异常java.lang.ArrayIndexOutOfBoundsException。为什么?