0

我正在构建酒店发票应用程序时正在执行一项任务,并且我必须向用户询问代客泊车的客户注册号。如果没有输入,则假定不需要代客泊车服务,但如果输入了某项,则必须将 50.00 美元的费用添加到显示的发票中。到目前为止我的代码如下,我只是想弄清楚如何做到这一点。

    if(vehiclereg.equals("SOMETHING")) {
        valetparkingsurcharge = 50; // Calculate Valet Parking Surcharge
        System.out.printf("\n%-50s %-100s\n", "Valet Parking:", "Y");
        System.out.printf("%-50s %-5s %.2f\n", "Valet Parking Surcharge:", "$", valetparkingsurcharge + " vehiclereg");
        } 
            else if (vehiclereg.equals("NOTHING")) {
            System.out.printf("\n%-50s %-100s\n", "Valet Parking Surcharge:", "N");
        }        

我已经在代码中删除了 SOMETHING 和 NOTHING 来表示我需要这两个函数发生的位置,这样其他人就更清楚了。我之前在赋值语句中使用了 IF 语句,但是它有一个 YES 或 NO 输入,所以我想出了如何对其进行编码。上面部分的问题是它必须有任何输入或 NO 输入来指导程序该怎么办。

请注意,代客泊车附加费设置为双精度,车辆注册设置为字符串,并且在程序开始时已输入数据(表示需要该服务)或未输入(表示不需要该服务) .

我才刚刚开始使用 Java,这是我的第一个任务,因此我将不胜感激任何人都可以在本节中给我的任何帮助。我只是要拔掉我的头发!

4

5 回答 5

2

您可以简单地检查 null 和输入长度

if (vehiclereg != null && vehiclereg.length() > 0) {
  // charge valet parking
} else {
  // do not charge
}

或者对于更复杂的检查,请参阅Java 正则表达式

于 2013-06-20T05:12:43.543 回答
2

String.isEmpty将检查字符串是否为空。

null或者,您也可以检查

于 2013-06-20T05:12:52.050 回答
1

你可以检查的String长度

if(vehiclereg != null && vehiclereg.trim().length() > 0) {
    valetparkingsurcharge = 50; // Calculate Valet Parking Surcharge
    System.out.printf("\n%-50s %-100s\n", "Valet Parking:", "Y");
    System.out.printf("%-50s %-5s %.2f\n", "Valet Parking Surcharge:", "$", valetparkingsurcharge + " vehiclereg");
} 
else { // Nothing...
    System.out.printf("\n%-50s %-100s\n", "Valet Parking Surcharge:", "N");
}   
于 2013-06-20T05:13:03.427 回答
0

可以通过真/假语句来检查它。

于 2013-06-20T05:17:57.340 回答
0

您可以通过添加另一个检查器来进一步检查

 if (vehiclereg != null > vehiclereg.length() > 0) {  //prevent null pointer
      // charge valet parking (SOMETHING or NOTHING or whatever value)
     } else if(vehiclereg != null && "".equals(vehiclereg)){
       //if user enters empty strings, this can happen
     }else {
      // default operation   if conditions above are not satisfied
   }
于 2013-06-20T05:25:07.313 回答