You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucenenet.apache.org by ni...@apache.org on 2017/08/02 04:12:25 UTC

[08/12] lucenenet git commit: Lucene.Net.Support.StringExtensions: Added a TrimEnd() method that can be used on string arrays. This is to mimic Java's Split() method that removes only the null or empty elements from the end of the array that is returned,

Lucene.Net.Support.StringExtensions: Added a TrimEnd() method that can be used on string arrays. This is to mimic Java's Split() method that removes only the null or empty elements from the end of the array that is returned, but leaves any prior empty elements intact.


Project: http://git-wip-us.apache.org/repos/asf/lucenenet/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucenenet/commit/6b56e2bd
Tree: http://git-wip-us.apache.org/repos/asf/lucenenet/tree/6b56e2bd
Diff: http://git-wip-us.apache.org/repos/asf/lucenenet/diff/6b56e2bd

Branch: refs/heads/master
Commit: 6b56e2bd2448ffa201cb413e812defe9fbadc2b6
Parents: 51a6c52
Author: Shad Storhaug <sh...@shadstorhaug.com>
Authored: Mon Jul 31 12:48:17 2017 +0700
Committer: Shad Storhaug <sh...@shadstorhaug.com>
Committed: Wed Aug 2 09:53:59 2017 +0700

----------------------------------------------------------------------
 src/Lucene.Net/Support/StringExtensions.cs | 30 +++++++++++++++++++++++++
 1 file changed, 30 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucenenet/blob/6b56e2bd/src/Lucene.Net/Support/StringExtensions.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net/Support/StringExtensions.cs b/src/Lucene.Net/Support/StringExtensions.cs
index 3828a72..b8e4bbd 100644
--- a/src/Lucene.Net/Support/StringExtensions.cs
+++ b/src/Lucene.Net/Support/StringExtensions.cs
@@ -1,5 +1,6 @@
 using Lucene.Net.Util;
 using System;
+using System.Collections.Generic;
 using System.Text;
 
 namespace Lucene.Net.Support
@@ -136,5 +137,34 @@ namespace Lucene.Net.Support
             // codePoint is negative or not found in string
             return -1;
         }
+
+        // LUCENENET TODO: BUG Replace all calls to .Split("", StringSplitOptions.RemoveEmptyEntries)
+        // and Regex.Split("") with .Split("").TrimEnd() and Regex.Split("").TrimEnd() to match the 
+        // behavior of Java's Split() method.
+
+        /// <summary>
+        /// Removes null or empty elements from the end of a string array.
+        /// </summary>
+        /// <param name="input">This string array.</param>
+        /// <returns>The array with any null or empty elements removed from the end.</returns>
+        public static string[] TrimEnd(this string[] input)
+        {
+            if (input == null)
+                return null;
+            int lastElement;
+            for (lastElement = input.Length - 1; lastElement >= 0; lastElement--)
+            {
+                if (!string.IsNullOrEmpty(input[lastElement]))
+                    break;
+            }
+            if (lastElement > 0 && lastElement < input.Length)
+            {
+                int end = lastElement + 1;
+                string[] result = new string[end];
+                Array.Copy(input, result, end);
+                return result;
+            }
+            return input;
+        }
     }
 }
\ No newline at end of file