Java 比较“的两个字符串”;大于';0'。。和空“;

Java 比较“的两个字符串”;大于';0'。。和空“;,java,string-comparison,comparison-operators,Java,String Comparison,Comparison Operators,我试图通过严格的Java方法和操作符来挖掘我的方法,但是现在,试图将一段PHP代码“翻译”成Java(Android),我有点被卡住了 在PHP中: if ($row['price']>'0'){ (.. do something if price is defined - and higher than zero ..) } 问题是,$row['price']可能为空(在Java中为null?)或包含“0”(零)。 但是,我如何用Java以一种智能且不太复杂的方式编写代码呢 假设您

我试图通过严格的Java方法和操作符来挖掘我的方法,但是现在,试图将一段PHP代码“翻译”成Java(Android),我有点被卡住了

在PHP中:

if ($row['price']>'0'){
  (.. do something if price is defined - and higher than zero ..)
}
问题是,$row['price']可能为空(在Java中为null?)或包含“0”(零)。
但是,我如何用Java以一种智能且不太复杂的方式编写代码呢

假设您获得了可变价格中的价格字符串

String price = <get price somehow>;    
try {
    if (price != null && Integer.valueOf(price) > 0) {
        do something with price...
    }
} catch (NumberFormatException exception) {
}
字符串价格=;
试一试{
如果(价格!=null&&Integer.valueOf(价格)>0){
用价格做点什么。。。
}
}捕获(NumberFormatException异常){
}
您可以使用以下功能:

String price="somevalue";
int priceInt=Integer.valueOf(price);

try{
if( !price.equals("") && priceInt>0){

// if condition is true,do your thing here!

}
}catch (NullPointerException e){

//if price is null this part will be executed,in your case leave it blank
}
catch (NumberFormatException exception) {
}

注意:空字符串和空引用之间有区别。请使用相关标记。我为您重新标记了它。请看一下字符串类API中的
compareTo()
方法:为什么需要将price转换为整数?原始版本只是将它们作为字符串进行比较。所以我想你可以简单地选择price.compareTo(“0”)>0.compareTo按字典顺序排列字符串。据我所知,这并不是他在这里想要做的。也许我们在这里说的是不同的语言?我使用的是Java/Android,IsEmpty()对于字符串类型是未定义的,不是用“&&”而不是“&”?我没有注意到“Android”这个词。我改变了答案。而且“&”与“&&”不同。使用“&&&”将只检查条件的第一条语句,如果它是“false”,则将忽略第二条语句,将整个条件标记为“false”。