Use isEmpty().
diff --git a/core/src/main/java/org/apache/commons/digester3/Digester.java b/core/src/main/java/org/apache/commons/digester3/Digester.java
index c95239a..accf50d 100644
--- a/core/src/main/java/org/apache/commons/digester3/Digester.java
+++ b/core/src/main/java/org/apache/commons/digester3/Digester.java
@@ -1325,7 +1325,7 @@
 
         // Compute the current matching rule
         final StringBuilder sb = new StringBuilder( match );
-        if ( match.length() > 0 )
+        if ( !match.isEmpty() )
         {
             sb.append( '/' );
         }
diff --git a/core/src/main/java/org/apache/commons/digester3/NodeCreateRule.java b/core/src/main/java/org/apache/commons/digester3/NodeCreateRule.java
index 1ad8b65..27e2bc3 100644
--- a/core/src/main/java/org/apache/commons/digester3/NodeCreateRule.java
+++ b/core/src/main/java/org/apache/commons/digester3/NodeCreateRule.java
@@ -144,7 +144,7 @@
                 final String str = topText.toString();
                 topText.setLength( 0 );
 
-                if ( str.trim().length() > 0 )
+                if ( !str.trim().isEmpty() )
                 {
                     // The contained text is not *pure* whitespace, so create
                     // a text node to hold it. Note that the "untrimmed" text
diff --git a/core/src/main/java/org/apache/commons/digester3/RulesBase.java b/core/src/main/java/org/apache/commons/digester3/RulesBase.java
index a4e7918..c223230 100644
--- a/core/src/main/java/org/apache/commons/digester3/RulesBase.java
+++ b/core/src/main/java/org/apache/commons/digester3/RulesBase.java
@@ -146,7 +146,7 @@
                     longKey = key;
                 }
             }
-            if ( longKey.length() > 0 )
+            if ( !longKey.isEmpty() )
             {
                 rulesList = lookup( namespaceURI, "*" + longKey );
             }
diff --git a/core/src/main/java/org/apache/commons/digester3/annotations/handlers/CallParamHandler.java b/core/src/main/java/org/apache/commons/digester3/annotations/handlers/CallParamHandler.java
index ff3a46e..287b149 100644
--- a/core/src/main/java/org/apache/commons/digester3/annotations/handlers/CallParamHandler.java
+++ b/core/src/main/java/org/apache/commons/digester3/annotations/handlers/CallParamHandler.java
@@ -45,7 +45,7 @@
             .withNamespaceURI( annotation.namespaceURI() )
             .callParam()
             .ofIndex( element.getIndex() )
-            .fromAttribute( annotation.attributeName().length() > 0 ? annotation.attributeName() : null );
+            .fromAttribute( annotation.attributeName().isEmpty() ? null : annotation.attributeName() );
 
         if ( annotation.fromStack() )
         {
diff --git a/core/src/main/java/org/apache/commons/digester3/annotations/handlers/FactoryCreateHandler.java b/core/src/main/java/org/apache/commons/digester3/annotations/handlers/FactoryCreateHandler.java
index b1b514d..de51bce 100644
--- a/core/src/main/java/org/apache/commons/digester3/annotations/handlers/FactoryCreateHandler.java
+++ b/core/src/main/java/org/apache/commons/digester3/annotations/handlers/FactoryCreateHandler.java
@@ -42,7 +42,7 @@
         final FactoryCreateBuilder builder = rulesBinder.forPattern( annotation.pattern() )
             .withNamespaceURI( annotation.namespaceURI() )
             .factoryCreate()
-            .overriddenByAttribute( annotation.attributeName().length() > 0 ? annotation.attributeName() : null )
+            .overriddenByAttribute( annotation.attributeName().isEmpty() ? null : annotation.attributeName() )
             .ignoreCreateExceptions( annotation.ignoreCreateExceptions() );
 
         if ( FactoryCreate.DefaultObjectCreationFactory.class != annotation.factoryClass() )
diff --git a/core/src/main/java/org/apache/commons/digester3/annotations/handlers/SetPropertiesHandler.java b/core/src/main/java/org/apache/commons/digester3/annotations/handlers/SetPropertiesHandler.java
index 23c60ce..12f5b71 100644
--- a/core/src/main/java/org/apache/commons/digester3/annotations/handlers/SetPropertiesHandler.java
+++ b/core/src/main/java/org/apache/commons/digester3/annotations/handlers/SetPropertiesHandler.java
@@ -46,7 +46,7 @@
             .withNamespaceURI( annotation.namespaceURI() )
             .setProperties();
 
-        if ( annotation.attributeName() != null && annotation.attributeName().length() > 0
+        if ( annotation.attributeName() != null && !annotation.attributeName().isEmpty()
             && !element.getName().equals( annotation.attributeName() ) )
         {
             builder.addAlias( annotation.attributeName() ).forProperty( element.getName() );
diff --git a/core/src/main/java/org/apache/commons/digester3/annotations/handlers/SetTopHandler.java b/core/src/main/java/org/apache/commons/digester3/annotations/handlers/SetTopHandler.java
index f25308e..3d4a4f9 100644
--- a/core/src/main/java/org/apache/commons/digester3/annotations/handlers/SetTopHandler.java
+++ b/core/src/main/java/org/apache/commons/digester3/annotations/handlers/SetTopHandler.java
@@ -49,7 +49,7 @@
 
         rulesBinder
             .forPattern( annotation.pattern() )
-            .withNamespaceURI( annotation.namespaceURI().length() > 0 ? annotation.namespaceURI() : null )
+            .withNamespaceURI( !annotation.namespaceURI().isEmpty() ? annotation.namespaceURI() : null )
             .setTop( element.getName() )
             .withParameterType( element.getParameterTypes()[0] )
             .fireOnBegin( annotation.fireOnBegin() );
diff --git a/core/src/main/java/org/apache/commons/digester3/binder/LinkedRuleBuilder.java b/core/src/main/java/org/apache/commons/digester3/binder/LinkedRuleBuilder.java
index 8a675e3..7ef3ee9 100644
--- a/core/src/main/java/org/apache/commons/digester3/binder/LinkedRuleBuilder.java
+++ b/core/src/main/java/org/apache/commons/digester3/binder/LinkedRuleBuilder.java
@@ -330,7 +330,7 @@
      */
     public LinkedRuleBuilder withNamespaceURI( /* @Nullable */final String namespaceURI )
     {
-        if ( namespaceURI == null || namespaceURI.length() > 0 )
+        if ( namespaceURI == null || !namespaceURI.isEmpty() )
         {
             this.namespaceURI = namespaceURI;
         }
diff --git a/core/src/main/java/org/apache/commons/digester3/xmlrules/CallMethodRule.java b/core/src/main/java/org/apache/commons/digester3/xmlrules/CallMethodRule.java
index c2e6563..015165d 100644
--- a/core/src/main/java/org/apache/commons/digester3/xmlrules/CallMethodRule.java
+++ b/core/src/main/java/org/apache/commons/digester3/xmlrules/CallMethodRule.java
@@ -68,7 +68,7 @@
         }
 
         final String paramTypesStr = attributes.getValue( "paramtypes" );
-        if ( paramTypesStr != null && paramTypesStr.length() > 0 )
+        if ( paramTypesStr != null && !paramTypesStr.isEmpty() )
         {
             final StringTokenizer tokens = new StringTokenizer( paramTypesStr, " \t\n\r," );
             final String[] paramTypeNames = new String[tokens.countTokens()];
diff --git a/core/src/main/java/org/apache/commons/digester3/xmlrules/IncludeRule.java b/core/src/main/java/org/apache/commons/digester3/xmlrules/IncludeRule.java
index 463b478..7b4d808 100644
--- a/core/src/main/java/org/apache/commons/digester3/xmlrules/IncludeRule.java
+++ b/core/src/main/java/org/apache/commons/digester3/xmlrules/IncludeRule.java
@@ -60,7 +60,7 @@
     {
         // The path attribute gives the URI to another digester rules xml file
         final String fileName = attributes.getValue( "url" );
-        if ( fileName != null && fileName.length() > 0 )
+        if ( fileName != null && !fileName.isEmpty() )
         {
             final URL xmlRulesResource;
 
@@ -124,7 +124,7 @@
         // The class attribute gives the name of a class that implements
         // the DigesterRulesSource interface
         final String className = attributes.getValue( "class" );
-        if ( className != null && className.length() > 0 )
+        if ( className != null && !className.isEmpty() )
         {
             try
             {
diff --git a/core/src/main/java/org/apache/commons/digester3/xmlrules/NodeCreateRule.java b/core/src/main/java/org/apache/commons/digester3/xmlrules/NodeCreateRule.java
index fdecb51..90dd2c1 100644
--- a/core/src/main/java/org/apache/commons/digester3/xmlrules/NodeCreateRule.java
+++ b/core/src/main/java/org/apache/commons/digester3/xmlrules/NodeCreateRule.java
@@ -49,7 +49,7 @@
         final NodeCreateRuleProvider nodeProvider = linkedRuleBuilder.createNode();
 
         final String nodeType = attributes.getValue( "type" );
-        if ( nodeType != null && nodeType.length() > 0 )
+        if ( nodeType != null && !nodeType.isEmpty() )
         {
             if ( "element".equals( nodeType ) )
             {
diff --git a/core/src/main/java/org/apache/commons/digester3/xmlrules/ObjectCreateRule.java b/core/src/main/java/org/apache/commons/digester3/xmlrules/ObjectCreateRule.java
index e54a9c6..7e6a8b6 100644
--- a/core/src/main/java/org/apache/commons/digester3/xmlrules/ObjectCreateRule.java
+++ b/core/src/main/java/org/apache/commons/digester3/xmlrules/ObjectCreateRule.java
@@ -50,7 +50,7 @@
             .ofTypeSpecifiedByAttribute( attributes.getValue( "attrname" ) );
 
         final String paramTypesStr = attributes.getValue( "paramtypes" );
-        if ( paramTypesStr != null && paramTypesStr.length() > 0 )
+        if ( paramTypesStr != null && !paramTypesStr.isEmpty() )
         {
             final StringTokenizer tokens = new StringTokenizer( paramTypesStr, " \t\n\r," );
             final String[] paramTypeNames = new String[tokens.countTokens()];
@@ -62,7 +62,7 @@
             builder.usingConstructor( paramTypeNames );
         }
         final String paramsStr = attributes.getValue( "params" );
-        if ( paramsStr != null && paramsStr.length() > 0 )
+        if ( paramsStr != null && !paramsStr.isEmpty() )
         {
             final StringTokenizer tokens = new StringTokenizer( paramTypesStr, " \t\n\r," );
             final Object[] params = new Object[tokens.countTokens()];
diff --git a/core/src/main/java/org/apache/commons/digester3/xmlrules/PatternStack.java b/core/src/main/java/org/apache/commons/digester3/xmlrules/PatternStack.java
index 1f2e841..22931c3 100644
--- a/core/src/main/java/org/apache/commons/digester3/xmlrules/PatternStack.java
+++ b/core/src/main/java/org/apache/commons/digester3/xmlrules/PatternStack.java
@@ -36,7 +36,7 @@
         for ( int i = 0; i < size(); i++ )
         {
             final String elem = get( i );
-            if ( elem.length() > 0 )
+            if ( !elem.isEmpty() )
             {
                 if ( str.length() > 0 )
                 {
diff --git a/core/src/main/java/org/apache/commons/digester3/xmlrules/PrefixedRulesBinder.java b/core/src/main/java/org/apache/commons/digester3/xmlrules/PrefixedRulesBinder.java
index b49a9a6..2e6c137 100644
--- a/core/src/main/java/org/apache/commons/digester3/xmlrules/PrefixedRulesBinder.java
+++ b/core/src/main/java/org/apache/commons/digester3/xmlrules/PrefixedRulesBinder.java
@@ -79,7 +79,7 @@
     @Override
     public LinkedRuleBuilder forPattern( String pattern )
     {
-        if ( this.prefix != null && this.prefix.length() > 0 )
+        if ( this.prefix != null && !this.prefix.isEmpty() )
         {
             pattern = this.prefix + '/' + pattern;
         }
diff --git a/core/src/main/java/org/apache/commons/digester3/xmlrules/SetNextRule.java b/core/src/main/java/org/apache/commons/digester3/xmlrules/SetNextRule.java
index cfd1771..c41e3f9 100644
--- a/core/src/main/java/org/apache/commons/digester3/xmlrules/SetNextRule.java
+++ b/core/src/main/java/org/apache/commons/digester3/xmlrules/SetNextRule.java
@@ -48,7 +48,7 @@
     {
         final SetNextBuilder builder = linkedRuleBuilder.setNext( methodName );
 
-        if ( paramType != null && paramType.length() > 0 )
+        if ( paramType != null && !paramType.isEmpty() )
         {
             builder.withParameterType( paramType );
         }
diff --git a/core/src/main/java/org/apache/commons/digester3/xmlrules/SetRootRule.java b/core/src/main/java/org/apache/commons/digester3/xmlrules/SetRootRule.java
index a03f37f..bf5c522 100644
--- a/core/src/main/java/org/apache/commons/digester3/xmlrules/SetRootRule.java
+++ b/core/src/main/java/org/apache/commons/digester3/xmlrules/SetRootRule.java
@@ -48,7 +48,7 @@
     {
         final SetRootBuilder builder = linkedRuleBuilder.setRoot( methodName );
 
-        if ( paramType != null && paramType.length() > 0 )
+        if ( paramType != null && !paramType.isEmpty() )
         {
             builder.withParameterType( paramType );
         }
diff --git a/core/src/main/java/org/apache/commons/digester3/xmlrules/SetTopRule.java b/core/src/main/java/org/apache/commons/digester3/xmlrules/SetTopRule.java
index 5ff31ab..4b0eae5 100644
--- a/core/src/main/java/org/apache/commons/digester3/xmlrules/SetTopRule.java
+++ b/core/src/main/java/org/apache/commons/digester3/xmlrules/SetTopRule.java
@@ -48,7 +48,7 @@
     {
         final SetTopBuilder builder = linkedRuleBuilder.setTop( methodName );
 
-        if ( paramType != null && paramType.length() > 0 )
+        if ( paramType != null && !paramType.isEmpty() )
         {
             builder.withParameterType( paramType );
         }