繁体   English   中英

如何将字符串值转换为 Java 中的 Boolean 值

[英]How to convert String value to Boolean value in Java

我有通过 Java 套接字返回的字符串值。 字符串值如下所示

<command valid="true" /> 
    and 
<command name="LoadDocument" executed="true" />

我需要读取此字符串并将“有效”和“执行”部分值存储到 Boolean 变量中。 (“有效”和“执行”部分可以是真或假)。 我尝试了以下解决方案,

String str = "<command valid=\"true\" />"; // stored command in a String variable
boolean bool = Boolean.parseBoolean(str); // pass it as an argument

但布尔值始终为假。 我怎样才能做到这一点?

您可以安全地执行此操作。 首先,您必须确保字符串不是 null 并且其值为 Here,忽略大小写。 因此,“true”或“TRUE”将返回 boolean true 否则为 false

String str = "true";
String str1 = "ok";
boolean bool = Boolean.parseBoolean(str);
System.out.println(bool);
boolean bool1 = Boolean.parseBoolean(str1);
System.out.println(bool1);

结果

true
false

我认为您可以使用正则表达式regex101.com

private static final String REGEXP = "<command.+(?:valid|executed)=\"(?<val>[^\"]+)\"\\s*\\/>";
private static final Pattern PATTERN = Pattern.compile(REGEXP);

public static boolean isValidOrExecuted(String str) {
    Matcher matcher = PATTERN.matcher(str);
    boolean matches = matcher.matches();
    return matches && Boolean.parseBoolean(matcher.group("val"));
}

演示:

System.out.println(isValidOrExecuted("<command valid=\"true\" />"));                            // true
System.out.println(isValidOrExecuted("<command valid=\"false\" />"));                           // false
System.out.println(isValidOrExecuted("<command name=\"LoadDocument\" executed=\"true\" />"));   // true
System.out.println(isValidOrExecuted("<command name=\"LoadDocument\" executed=\"false\" />"));  // false

字符串有效 = “真”; 字符串执行=“真”;

Boolean 有效解析 = Boolean.parseBoolean(有效); Boolean 已执行Parsed = Boolean.parseBoolean(已执行);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM