如何说字符串A>;Java中的字符串B

如何说字符串A>;Java中的字符串B,java,string,Java,String,我正在开发一个比较服务级别的小程序,用户将输入服务级别2次(当前和请求),然后扫描和比较输入,并显示一条消息 例如: current = 9*5 NBD (a) requested = 24*7 SBD (b) 我想知道如何在Java中告诉编译器(b)大于(a) 因为我想用这样的if语句 if (b > a) then show message. 我尝试使用string.equals,但帮不了我多少忙。 我无法成功地将字符串转换为数字来进行此类比较。请尝试以下语句 if(a.与(b)相

我正在开发一个比较服务级别的小程序,用户将输入服务级别2次(当前和请求),然后扫描和比较输入,并显示一条消息

例如:

current = 9*5 NBD (a)
requested = 24*7 SBD (b)
我想知道如何在Java中告诉编译器(b)大于(a) 因为我想用这样的if语句

if (b > a) then show message.
我尝试使用string.equals,但帮不了我多少忙。 我无法成功地将字符串转换为数字来进行此类比较。

请尝试以下语句
if(a.与(b)相比>0)

第一件事:不能重写String.compareTo(),因为它是最终的。您可以使用
字符串字段创建类
,并为此类编写
compareTo()
。这不是最好的主意

但您可以通过将两个字符串放入数组并在
sort()
方法中创建
Comparator
接口的实现来比较它们

    String current = "9*5 NBD";
    String requested = "24*7 SBD";

    String[] test = {current, requested};
    Arrays.sort(test, new Comparator<String>() {
        @Override
        public int compare(String o1, String o2) {
            //Your impl goes here
            return 0;
        }
    });
String current=“9*5 NBD”;
请求的字符串=“24*7 SBD”;
String[]test={current,requested};
sort(test,newcomparator(){
@凌驾
公共整数比较(字符串o1、字符串o2){
//你的IMP在这里
返回0;
}
});

这些字符串来自哪里?当然,它们必须来自某种包含服务级别详细信息以及订阅该服务级别的成本的表。您要检查的是,所需的服务级别成本是否高于客户机已有的服务级别。假设服务级别详细信息来自一个
映射
,该映射给出了特定服务级别的成本。那么你所需要做的就是:

BigDecimal costOfCurrentSL = serviceLevelCosts.get(currentSL);
BigDecimal costOfRequiredSL = serviceLevelCosts.get(requiredSL);
if (costOfRequiredSL.compareTo(costOfCurrentSL) > 0) {
    // ... tell client he needs to purchase a top-up
}

感谢所有愿意帮助的人:) 经过深思熟虑,我找到了另一种方法,这对我帮助很大 我创建了两个新的整数,并将它们称为我需要的值。 使用if语句,如果输入的是9*5NBD,那么值将为零,如果是SBD,那么值将为1,依此类推,然后创建新的if语句来比较值,如果a大于B,则向我显示一条消息,这确实有效。 这是我代码的一部分

String WA_SLA = "", REQ_SLA = "";
int Va_WA_SLA = 0, Va_REQ_SLA = 0;
  if(WA_SLA.equalsIgnoreCase("9*5 SBD"))
  {
      Va_WA_SLA = 1;
  }
  if(REQ_SLA.equalsIgnoreCase("9*5 NBD"))
  {
      Va_REQ_SLA = 0;
  }
      if(Va_WA_SLA > Va_REQ_SLA)
  {
      JOptionPane.showMessageDialog(frame,"Warranty SLA is Higher than Requested SLA " ,null, JOptionPane.INFORMATION_MESSAGE);
  }

Thaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa;您希望对这些消息应用什么逻辑?换句话说,您希望使用字符串的哪一部分以及如何使用它们?您是否尝试过使用string.split()和Integer.parseInt()来自己进行计算?比较字符串有不同的规则。字符串使用的默认排序规则集称为*字典比较。“您应该阅读这些规则,以便了解获得所看到结果的原因。这些规则在String.compareTo()的API文档中指定。如果需要一组特定的规则进行排序,则应根据需要的规则编写自己的比较器。另外,在Java中,将单独的字段值存储在字符串中是一种不好的做法。面向对象的方法包括定义自己的ServiceLevel类,其实例字段将包含以这种方式表示这些字段可以让您通过重写Object.equals()轻松定义自己的自定义排序规则。