0

我有一个字符串,我在其中检查 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");
        }

    }

}
4

3 回答 3

3

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

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

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

于 2013-04-29T11:02:58.737 回答
1

试试这个方法

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

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

于 2013-04-29T11:05:08.947 回答
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");            
  }     
}
于 2013-04-29T11:12:27.153 回答