有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java数字代码

我有一个问题,让我告诉在给定的数字位数。我插入了条件语句,但无论插入什么数字,它都会给我“九”位数。代码如下。我是一名数学专业的学生,不是计算机科学专业的学生,所以我觉得我没有使用最有效的方法

import java.util.Scanner;

public class E52 {
    public static void main(String[] args) {
        // part 1: import scanner
        Scanner sc = new Scanner(System.in);

        // part 2: ask user for a number
        System.out.println("Please enter a number: ");
        int number = sc.nextInt();

        // part 3: tell how many digits are in each number by using string and conditional statements
        String number1Str;
        if (number >= 0 || number <= 10) number1Str = "one";
        if (number >= 10 || number <= 100) number1Str = "two";
        if (number >= 100 || number <= 1000) number1Str= "three";
        if (number >= 1000 || number <= 10000) number1Str = "four";
        if (number >= 10000 || number <= 100000) number1Str = "five";
        if (number >= 100000 || number <= 1000000) number1Str = "six";
        if (number >= 1000000 || number <= 10000000) number1Str = "seven";
        if (number >= 10000000 || number <= 100000000) number1Str = "eight";
        if (number >= 100000000 || number <= 1000000000) number1Str = "nine";
        else number1Str = "undefined";

        System.out.println("There are " + number1Str + " digits in the given number.");

        sc.close();
    }
}

共 (2) 个答案

  1. # 1 楼答案

    创建一个数组,然后获取输入的长度并选择,让它选择条目,这会容易得多:

    Scanner sc = new Scanner(System.in);
    
    // part 2: ask user for a number
    System.out.println("Please enter a number: ");
    Integer number = sc.nextInt();
    final String[] numNames = {
                "",
                "one",
                "two",
                "three",
                "four",
                "five",
                "six",
                "seven",
                "eight",
                "nine",
                "ten",
                "eleven",
                "twelve",
                "thirteen",
                "fourteen",
                "fifteen",
                "sixteen",
                "seventeen",
                "eighteen",
                "nineteen"
        };
    System.out.println(numNames[number.toString().length()]);
    
  2. # 2 楼答案

    这将给你数字计数,无论数字有多大或多小。虽然有一些角落的情况可能会失败的代码,但我仍然觉得这将是有用的,你在其他方面

    public class CountNum {
    
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            String numAsString = sc.nextLine();
            System.out.println(numAsString.length());
            sc.close();
        }
    
    }