From fde46a232d82f2b746f62bc7546e2e3371f20dca Mon Sep 17 00:00:00 2001 From: Dominik Schramm <1610640051@fh-burgenland.at> Date: Sat, 7 Mar 2020 16:58:19 +0100 Subject: [PATCH] Added 1 and 0 in toBooleanObject(final String str) (#502) * Added 1 and 0 in toBooleanObject(String) * Added 1 and 0 in toBooleanObject(String) - Documentation - Tests --- .../org/apache/commons/lang3/BooleanUtils.java | 16 ++++++++++------ .../apache/commons/lang3/BooleanUtilsTest.java | 4 ++++ 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/apache/commons/lang3/BooleanUtils.java b/src/main/java/org/apache/commons/lang3/BooleanUtils.java index 9dbcc6563..7cf379461 100644 --- a/src/main/java/org/apache/commons/lang3/BooleanUtils.java +++ b/src/main/java/org/apache/commons/lang3/BooleanUtils.java @@ -532,10 +532,10 @@ public static Integer toIntegerObject(final Boolean bool, final Integer trueValu /** *

Converts a String to a Boolean.

* - *

{@code 'true'}, {@code 'on'}, {@code 'y'}, {@code 't'} or {@code 'yes'} - * (case insensitive) will return {@code true}. - * {@code 'false'}, {@code 'off'}, {@code 'n'}, {@code 'f'} or {@code 'no'} - * (case insensitive) will return {@code false}. + *

{@code 'true'}, {@code 'on'}, {@code 'y'}, {@code 't'}, {@code 'yes'} + * or {@code '1'} (case insensitive) will return {@code true}. + * {@code 'false'}, {@code 'off'}, {@code 'n'}, {@code 'f'}, {@code 'no'} + * or {@code '0'} (case insensitive) will return {@code false}. * Otherwise, {@code null} is returned.

* *

NOTE: This method may return {@code null} and may throw a {@code NullPointerException} @@ -556,6 +556,8 @@ public static Integer toIntegerObject(final Boolean bool, final Integer trueValu * BooleanUtils.toBooleanObject("oFf") = Boolean.FALSE * BooleanUtils.toBooleanObject("yes") = Boolean.TRUE * BooleanUtils.toBooleanObject("Y") = Boolean.TRUE // i.e. Y[ES] + * BooleanUtils.toBooleanObject("1") = Boolean.TRUE + * BooleanUtils.toBooleanObject("0") = Boolean.FALSE * BooleanUtils.toBooleanObject("blue") = null * BooleanUtils.toBooleanObject("true ") = null // trailing space (too long) * BooleanUtils.toBooleanObject("ono") = null // does not match on or no @@ -581,11 +583,13 @@ public static Boolean toBooleanObject(final String str) { case 1: { final char ch0 = str.charAt(0); if (ch0 == 'y' || ch0 == 'Y' || - ch0 == 't' || ch0 == 'T') { + ch0 == 't' || ch0 == 'T' || + ch0 == '1') { return Boolean.TRUE; } if (ch0 == 'n' || ch0 == 'N' || - ch0 == 'f' || ch0 == 'F') { + ch0 == 'f' || ch0 == 'F' || + ch0 == '0') { return Boolean.FALSE; } break; diff --git a/src/test/java/org/apache/commons/lang3/BooleanUtilsTest.java b/src/test/java/org/apache/commons/lang3/BooleanUtilsTest.java index c25c22ef2..a70272fbc 100644 --- a/src/test/java/org/apache/commons/lang3/BooleanUtilsTest.java +++ b/src/test/java/org/apache/commons/lang3/BooleanUtilsTest.java @@ -280,10 +280,12 @@ public void test_toBooleanObject_String() { assertEquals(Boolean.TRUE, BooleanUtils.toBooleanObject("Y")); assertEquals(Boolean.TRUE, BooleanUtils.toBooleanObject("t")); // true assertEquals(Boolean.TRUE, BooleanUtils.toBooleanObject("T")); + assertEquals(Boolean.TRUE, BooleanUtils.toBooleanObject("1")); assertEquals(Boolean.FALSE, BooleanUtils.toBooleanObject("f")); // false assertEquals(Boolean.FALSE, BooleanUtils.toBooleanObject("F")); assertEquals(Boolean.FALSE, BooleanUtils.toBooleanObject("n")); // No assertEquals(Boolean.FALSE, BooleanUtils.toBooleanObject("N")); + assertEquals(Boolean.FALSE, BooleanUtils.toBooleanObject("0")); assertNull(BooleanUtils.toBooleanObject("z")); assertNull(BooleanUtils.toBooleanObject("ab")); @@ -353,7 +355,9 @@ public void test_toBoolean_String() { assertTrue(BooleanUtils.toBoolean("YeS")); assertTrue(BooleanUtils.toBoolean("YEs")); assertTrue(BooleanUtils.toBoolean("YES")); + assertTrue(BooleanUtils.toBoolean("1")); assertFalse(BooleanUtils.toBoolean("yes?")); + assertFalse(BooleanUtils.toBoolean("0")); assertFalse(BooleanUtils.toBoolean("tru")); assertFalse(BooleanUtils.toBoolean("no"));