Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 位数代码_Java - Fatal编程技术网

Java 位数代码

Java 位数代码,java,Java,我有一个问题,让我告诉在给定的数字位数。我插入了条件语句,但无论插入什么数字,它都会给我“九”位数。代码如下。我是学数学的,不是计算机科学,所以我觉得我没有用最有效的方法 import java.util.Scanner; public class E52 { public static void main(String[] args) { // part 1: import scanner Scanner sc = new Scanner(System

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

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();
    }
}
import java.util.Scanner;
公开课E52{
公共静态void main(字符串[]args){
//第1部分:导入扫描仪
扫描仪sc=新的扫描仪(System.in);
//第2部分:向用户询问号码
System.out.println(“请输入一个数字:”);
int number=sc.nextInt();
//第3部分:通过使用字符串和条件语句来说明每个数字中有多少位
字符串编号1str;

如果(数字>=0 | |数字=10 | |数字=100 | |数字=1000 | |数字=10000 | |数字=1000000 | |数字=100000000 | | | |数字无论数字有多大或多小,这都会给你提供数字计数。虽然有一些角落场景可能无法通过代码,但我仍然觉得这对你有用,我相信n另一方面

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();
    }

}

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

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()]);

逻辑错误。你的
|
应该是
&&
。因为你想要一个逻辑and,而不是逻辑or。如果你使用
,它也会简单得多,否则如果
,那么你在每个测试中只需要一个条件。为了做你需要的事情,这看起来非常复杂,但我不是java开发人员。你不能将它转换为字符串吗nd确定长度?@RobertWade将其转换为
String
并使用
length()
方法肯定会达到目的,但我认为这是一种练习或家庭作业。
if(number<0){return“negative”}else if(number<10){return one;}else if(number<100){return two;}etc
好吧,有无数种方法可以做到这一点。这在很大程度上取决于他的家庭作业要求他做什么。如果他不得不使用if/else…你的解决方案是毫无意义的。再说一次,我没有投反对票,只需发表评论。当他的作业要求使用if/else时,你的答案对他没有帮助。同意。如果整个要点是为了教授if/else和操作员,以这种方式进行操作是没有意义的。:)@GhostCat他在哪里说作业需要if/else?他甚至承认他可能使用了一种低效的方法,这意味着这是他自己选择的。他只是说他需要找到位数。注意:我没有投反对票。我只是出于经验。当新手专注于某个模式时,通常是因为他们我们被要求这样做。