Java:String检查null和两个属性

时间:2013-04-29 11:00:43

标签: java

我有一个字符串,其中我正在检查3个条件         // str!= null         //或者str是否包含rate属性                 //如果str包含未定义的

我试过这种方式,它的工作但请告诉我这是否是一种有效的传递途径?

package com;

import java.util.ArrayList;
import java.util.List;

public class Test {

    public static void main(String args[]) {


        String str = "{\r\n" + 
                "    \"qty\": \"undefined\",\r\n" + 
                "    \"dswer\": 0,\r\n" + 
                "    \"bag\": {\r\n" + 
                "        \"dm\": \"2\",\r\n" + 
                "        \"rate\": \"---\",\r\n" + 
                "        \"ghy\": \"3013-04-05T00:00:00.000-05:00\",\r\n" + 
                "        \"dee\": \"301304\",\r\n" + 
                "        \"desc\": \"SSAA APR 05 2013 --- CALL\"\r\n" + 
                "    }\r\n" + 
                "}";



        if(str!=null && str.contains("\"rate\": \"---\"") || str.contains("undefined"))
        {
            System.out.println("Invalid");
        }
        else
        {
            System.out.println("Valid");
        }

    }

}

3 个答案:

答案 0 :(得分:3)

您需要将str != null &&更改为str == null ||

if(str==null || str.contains("\"rate\": \"---\"") || str.contains("undefined"))

否则,字符串在null时变为有效。

答案 1 :(得分:1)

试试这种方式

if( str!=null 
      && ( str.contains("\"rate\": \"---\"") || str.contains("undefined") ) )
{
      System.out.println("Invalid");
}
else
{
      System.out.println("Valid");
}

根据你的代码,即使str为null,它仍会检查包含

答案 2 :(得分:0)

试试这个:

if(str==null)
{
  System.out.println("Invalid");
}
else
{           
  if(str.contains("\"rate\": \"---\"") || str.contains("undefined"))        
  {         
    System.out.println("Invalid");       
  }         
  else          
  {             
    System.out.println("Valid");            
  }     
}