【问题标题】:Comparing Strings in If loop using Coupon.equals使用 Coupon.equals 比较 If 循环中的字符串
【发布时间】:2020-09-25 06:58:02
【问题描述】:

我正在从 JSON 读取数据并尝试与我想要的验证进行比较。 它有效,但有更好的方法吗?

我希望它能够验证从“0.025”、“0.03”、“0.035”、“0.04”、“0.045”、“0.05”等到 1.00 的值

代码:

 String Coupon = (String) data.get("coupon");
              
if(Coupon.equals("0.025")||Coupon.equals("0.03")||(Coupon.equals("0.035")||Coupon.equals("0.04"))||(Coupon.equals("0.045")||Coupon.equals("0.05"))){
    System.out.println("Valid Data Found");  
}

【问题讨论】:

  • 好的,是什么阻止您这样做?将这些值添加到列表中,并对其进行迭代,或使用 contains 方法
  • 或者,正如@maloomeister 在他的回答中所说,只需使用具有有效值的 HashSet :)

标签: java json string if-statement equals


【解决方案1】:

您验证一组固定数据的最简单方法可能是使用Set 并检查您的优惠券是否包含在有效数据中。

例如:

public static void main(String[] args) {
    String inputString = "0.03";
    Set<String> validCoupons = new HashSet<>(
        Arrays.asList("0.025", "0.03", "0.035", "0.04", "0.045", "0.05"));
    if (validCoupons.contains(inputString)) {
        System.out.println("Valid coupon found!");
    }
}

【讨论】:

    【解决方案2】:

    你可以这样做:

    for (double i = 0.025; i <= 1;) {
            String temp=String.valueOf(i);
            if (Coupon.equals(temp)) {
                System.out.println("Valid Data Found");
            }
            System.out.println(String.valueOf(temp));
            BigDecimal num1 = new BigDecimal(temp);
            BigDecimal num2 = new BigDecimal("0.005");
            BigDecimal addResult = num1.add(num2);
            String addStr=String.valueOf(addResult);
            i=Double.parseDouble(addStr);
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多