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