Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.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/3/android/208.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 如何缩短多个if语句_Java_Android_Android Studio - Fatal编程技术网

Java 如何缩短多个if语句

Java 如何缩短多个if语句,java,android,android-studio,Java,Android,Android Studio,我对编程相当陌生,不确定是否有办法缩短这段代码。基本上,无论为x输入什么值,都会确定“.”后面的数字 String x = mSharedPreferences.getString("title", "3"); if (x.equals("1")){ df = new DecimalFormat("#.#"); } else if(x.equals("2")){ df = new DecimalFormat("#.##");

我对编程相当陌生,不确定是否有办法缩短这段代码。基本上,无论为x输入什么值,都会确定“.”后面的数字

    String x = mSharedPreferences.getString("title", "3");
    if (x.equals("1")){
        df = new DecimalFormat("#.#");
    }
    else if(x.equals("2")){
        df = new DecimalFormat("#.##");
    }
    else if(x.equals("3")){
        df = new DecimalFormat("#.###");
    }
    else if(x.equals("4")){
        df = new DecimalFormat("#.####");
    }

通过调用以下命令,可以完全消除所有if语句:

如果您希望使用类似于0.000的格式,也可以调用:

指定一个类似的模式。或者0.000实际上只是调用各种DecimalFormat的简写


使用switch语句:

开关盒不会提供与if、else if、else实际上完全相同的功能。它提供了微妙不同的功能

我看到这个缩小的唯一方法是使用一个数组,然后做一个include检查,看看被检查的项目是否在可能的答案数组中

Psuedo代码为:

如果[1,2,3,4],则包括?x 终止

使用开关,大小写:x是一个字符串。开关在什么方面与本问题中使用的多路if不同?你确定你在谈论Java吗?@Pshemo好的,这是伪代码,所以不是Java@Andreas的评论不仅仅是关于代码示例:现在我再次阅读了这个答案,我更困惑了:include check布尔结果值在任何方面如何帮助解决问题中描述的问题?哇,甚至没有意识到DecimalFormat有这些类型的方法。谢谢你的信息!!!
DecimalFormat df = new DecimalFormat("#");
df.setMaximumFractionDigits(Integer.parseInt(x));
int decimals = Integer.parseInt(x);
DecimalFormat df = new DecimalFormat("0");
df.setMinimumFractionDigits(decimals);
df.setMaximumFractionDigits(decimals);
  switch (x) {
            case "1":  xx;
                     break;
            case "2":  xx;
                     break;
            case "3":  xx;
                     break;
            case "4":  xx;
                     break;
            default: 
                     break;
        }