String Utils : String Util « Data Types « C# / C Sharp

Home
C# / C Sharp
1.2D Graphics
2.Class Interface
3.Collections Data Structure
4.Components
5.Data Types
6.Database ADO.net
7.Design Patterns
8.Development Class
9.Event
10.File Stream
11.Generics
12.GUI Windows Form
13.Language Basics
14.LINQ
15.Network
16.Office
17.Reflection
18.Regular Expressions
19.Security
20.Services Event
21.Thread
22.Web Services
23.Windows
24.Windows Presentation Foundation
25.XML
26.XML LINQ
C# / C Sharp by API
C# / CSharp Tutorial
C# / CSharp Open Source
C# / C Sharp » Data Types » String UtilScreenshots 
String Utils
 
#region License
// Copyright (c) 2007 James Newton-King
//
// Permission is hereby granted, free of charge, to any person
// obtaining a copy of this software and associated documentation
// files (the "Software"), to deal in the Software without
// restriction, including without limitation the rights to use,
// copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the
// Software is furnished to do so, subject to the following
// conditions:
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
// OTHER DEALINGS IN THE SOFTWARE.
#endregion

using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
using System.Text.RegularExpressions;
using System.Linq;
using System.Globalization;

namespace Newtonsoft.Json.Utilities
{
  internal static class StringUtils
  {
    public const string CarriageReturnLineFeed = "\r\n";
    public const string Empty = "";
    public const char CarriageReturn = '\r';
    public const char LineFeed = '\n';
    public const char Tab = '\t';

    //public static string FormatWith(this string format, params object[] args)
    //{
    //  return FormatWith(format, null, args);
    //}

    public static string FormatWith(this string format, IFormatProvider provider, params object[] args)
    {
      

      return string.Format(provider, format, args);
    }

    /// <summary>
    /// Determines whether the string contains white space.
    /// </summary>
    /// <param name="s">The string to test for white space.</param>
    /// <returns>
    ///   <c>true</c> if the string contains white space; otherwise, <c>false</c>.
    /// </returns>
    public static bool ContainsWhiteSpace(string s)
    {
      if (s == null)
        throw new ArgumentNullException("s");

      for (int i = 0; i < s.Length; i++)
      {
        if (char.IsWhiteSpace(s[i]))
          return true;
      }
      return false;
    }

    /// <summary>
    /// Determines whether the string is all white space. Empty string will return false.
    /// </summary>
    /// <param name="s">The string to test whether it is all white space.</param>
    /// <returns>
    ///   <c>true</c> if the string is all white space; otherwise, <c>false</c>.
    /// </returns>
    public static bool IsWhiteSpace(string s)
    {
      if (s == null)
        throw new ArgumentNullException("s");

      if (s.Length == 0)
        return false;

      for (int i = 0; i < s.Length; i++)
      {
        if (!char.IsWhiteSpace(s[i]))
          return false;
      }

      return true;
    }

    /// <summary>
    /// Ensures the target string ends with the specified string.
    /// </summary>
    /// <param name="target">The target.</param>
    /// <param name="value">The value.</param>
    /// <returns>The target string with the value string at the end.</returns>
    public static string EnsureEndsWith(string target, string value)
    {
      if (target == null)
        throw new ArgumentNullException("target");

      if (value == null)
        throw new ArgumentNullException("value");

      if (target.Length >= value.Length)
      {
        if (string.Compare(target, target.Length - value.Length, value, 0, value.Length, StringComparison.OrdinalIgnoreCase==
                        0)
          return target;

        string trimmedString = target.TrimEnd(null);

        if (string.Compare(trimmedString, trimmedString.Length - value.Length, value, 0, value.Length,
                        StringComparison.OrdinalIgnoreCase== 0)
          return target;
      }

      return target + value;
    }

    public static bool IsNullOrEmptyOrWhiteSpace(string s)
    {
      if (string.IsNullOrEmpty(s))
        return true;
      else if (IsWhiteSpace(s))
        return true;
      else
        return false;
    }

    /// <summary>
    /// Perform an action if the string is not null or empty.
    /// </summary>
    /// <param name="value">The value.</param>
    /// <param name="action">The action to perform.</param>
    public static void IfNotNullOrEmpty(string value, Action<string> action)
    {
      IfNotNullOrEmpty(value, action, null);
    }

    private static void IfNotNullOrEmpty(string value, Action<string> trueAction, Action<string> falseAction)
    {
      if (!string.IsNullOrEmpty(value))
      {
        if (trueAction != null)
          trueAction(value);
      }
      else
      {
        if (falseAction != null)
          falseAction(value);
      }
    }

    /// <summary>
    /// Indents the specified string.
    /// </summary>
    /// <param name="s">The string to indent.</param>
    /// <param name="indentation">The number of characters to indent by.</param>
    /// <returns></returns>
    public static string Indent(string s, int indentation)
    {
      return Indent(s, indentation, ' ');
    }

    /// <summary>
    /// Indents the specified string.
    /// </summary>
    /// <param name="s">The string to indent.</param>
    /// <param name="indentation">The number of characters to indent by.</param>
    /// <param name="indentChar">The indent character.</param>
    /// <returns></returns>
    public static string Indent(string s, int indentation, char indentChar)
    {
      if (s == null)
        throw new ArgumentNullException("s");

      if (indentation <= 0)
        throw new ArgumentException("Must be greater than zero.""indentation");

      StringReader sr = new StringReader(s);
      StringWriter sw = new StringWriter(CultureInfo.InvariantCulture);

      ActionTextReaderLine(sr, sw, delegate(TextWriter tw, string line)
      {
        tw.Write(new string(indentChar, indentation));
        tw.Write(line);
      });

      return sw.ToString();
    }

    private delegate void ActionLine(TextWriter textWriter, string line);

    private static void ActionTextReaderLine(TextReader textReader, TextWriter textWriter, ActionLine lineAction)
    {
      string line;
      bool firstLine = true;
      while ((line = textReader.ReadLine()) != null)
      {
        if (!firstLine)
          textWriter.WriteLine();
        else
          firstLine = false;

        lineAction(textWriter, line);
      }
    }

    /// <summary>
    /// Numbers the lines.
    /// </summary>
    /// <param name="s">The string to number.</param>
    /// <returns></returns>
    public static string NumberLines(string s)
    {
      if (s == null)
        throw new ArgumentNullException("s");

      StringReader sr = new StringReader(s);
      StringWriter sw = new StringWriter(CultureInfo.InvariantCulture);

      int lineNumber = 1;

      ActionTextReaderLine(sr, sw, delegate(TextWriter tw, string line)
      {
        tw.Write(lineNumber.ToString(CultureInfo.InvariantCulture).PadLeft(4));
        tw.Write(". ");
        tw.Write(line);

        lineNumber++;
      });

      return sw.ToString();
    }

    /// <summary>
    /// Nulls an empty string.
    /// </summary>
    /// <param name="s">The string.</param>
    /// <returns>Null if the string was null, otherwise the string unchanged.</returns>
    public static string NullEmptyString(string s)
    {
      return (string.IsNullOrEmpty(s)) null : s;
    }

    public static string ReplaceNewLines(string s, string replacement)
    {
      StringReader sr = new StringReader(s);
      StringBuilder sb = new StringBuilder();

      bool first = true;

      string line;
      while ((line = sr.ReadLine()) != null)
      {
        if (first)
          first = false;
        else
          sb.Append(replacement);

        sb.Append(line);
      }

      return sb.ToString();
    }

    public static string Truncate(string s, int maximumLength)
    {
      return Truncate(s, maximumLength, "...");
    }

    public static string Truncate(string s, int maximumLength, string suffix)
    {
      if (suffix == null)
        throw new ArgumentNullException("suffix");

      if (maximumLength <= 0)
        throw new ArgumentException("Maximum length must be greater than zero.""maximumLength");

      int subStringLength = maximumLength - suffix.Length;

      if (subStringLength <= 0)
        throw new ArgumentException("Length of suffix string is greater or equal to maximumLength");

      if (s != null && s.Length > maximumLength)
      {
        string truncatedString = s.Substring(0, subStringLength);
        // incase the last character is a space
        truncatedString = truncatedString.Trim();
        truncatedString += suffix;

        return truncatedString;
      }
      else
      {
        return s;
      }
    }

    public static StringWriter CreateStringWriter(int capacity)
    {
      StringBuilder sb = new StringBuilder(capacity);
      StringWriter sw = new StringWriter(sb, CultureInfo.InvariantCulture);

      return sw;
    }

    public static int? GetLength(string value)
    {
      if (value == null)
        return null;
      else
        return value.Length;
    }
    public static char IntToHex(int n)
    {
      if (n <= 9)
      {
        return (char)(n + 48);
      }
      return (char)((n - 1097);
    }
    public static string ToCharAsUnicode(char c)
    {
      char h1 = IntToHex((c >> 12& '\x000f');
      char h2 = IntToHex((c >> 8& '\x000f');
      char h3 = IntToHex((c >> 4& '\x000f');
      char h4 = IntToHex(c & '\x000f');

      return new string(new[] { '\\''u', h1, h2, h3, h4 });
    }

    public static void WriteCharAsUnicode(TextWriter writer, char c)
    {
      

      char h1 = IntToHex((c >> 12& '\x000f');
      char h2 = IntToHex((c >> 8& '\x000f');
      char h3 = IntToHex((c >> 4& '\x000f');
      char h4 = IntToHex(c & '\x000f');

      writer.Write('\\');
      writer.Write('u');
      writer.Write(h1);
      writer.Write(h2);
      writer.Write(h3);
      writer.Write(h4);
    }

    public static TSource ForgivingCaseSensitiveFind<TSource>(this IEnumerable<TSource> source, Func<TSource, string> valueSelector, string testValue)
    {
      if (source == null)
        throw new ArgumentNullException("source");
      if (valueSelector == null)
        throw new ArgumentNullException("valueSelector");

      var caseInsensitiveResults = source.Where(s => string.Compare(valueSelector(s), testValue, StringComparison.OrdinalIgnoreCase== 0);
      if (caseInsensitiveResults.Count() <= 1)
      {
        return caseInsensitiveResults.SingleOrDefault();
      }
      else
      {
        // multiple results returned. now filter using case sensitivity
        var caseSensitiveResults = source.Where(s => string.Compare(valueSelector(s), testValue, StringComparison.Ordinal== 0);
        return caseSensitiveResults.SingleOrDefault();
      }
    }
  }
}

   
  
Related examples in the same category
1.Generate ToString for given object
2.Remove all Html tag in a string
3.If given string Not Null Or Empty
4.Does string Contain White Space
5.Is given string white space
6.Ensure given string to end with another string
7.Does a string have only one word
8.Is the input string null or empty
9.Get Right Side Of String
10.Count Lines In String
11.Reverse a string
12.Get used chars
13.Calculate the max count of continuous characters
14.Count number of chars in a string
15.Count lines in a string with IndexOf
16.Forces the string to word wrap so that each line doesn't exceed the maxLineLength.
17.Splits the string into lines.
18.Splits the string into words (all white space is removed).
19.Determines if a string consists of all valid ASCII values.
20.Gets the right side of the string.
21.Truncates the string from left side
22.Shortcut for string.Format.
23.Gets the string up to the maximum number of characters.
24.Split Quoted String
25.Xml Encode String
26.Generates a hashcode for the string array
27.returns the last word of the string, using separators space ,;!?:
28.checks if a string is null or empty or is made only of spaces
29.removes the specified strings in the string array from the input string
30.joins the strings with the speficied separator.
31.Truncates the string.
32.Truncate with text
33.If null returns empty string, else, returns original.
34.Returns the defaultval if the val string is null or empty.
35.Convert the word(s) in the sentence to sentence case.
36.Get the index of a spacer ( space" " or newline )
37.Helper class to split a long word into a single one.
38.Count how many times a word appears in an array of words.
39.Find all unique words in an array of words.
40.Gets an array of sentences from a string.
41.Splits the string into an array, using the separator.
42.Array To New Line Separated String
43.New Line Separated String To Array
44.returns the elements of the array as a string, delimited with the default delimitor
45.Remove Trailing Path Delimeter
46.Get delimited chars from a string.
47.Ensures that a given array can hold up to minCapacity elements.
48.If necessary, adds zeros to the beginning of a value so that the total length matches the given precision
49.Add leading and trailing double quotes to the provided string if required.
50.Determines whether the string has white space.
51.Determines whether the string is all white space. Empty string will return false.
52.Ensures the target string ends with the specified string.
53.Splits string name into a readable string based on camel casing.
54.Convert String To Upper Ignore Null
55.Returns the size of substring that does not contain any trailing spaces
56.Skips any spaces at or after start and returns the index of first non-space character;
57.Provides a collection of convenience methods for processing and creating objects with String value components.
58.Get new line string
59.Convert string to sentence case
60.Cut string and display three dots
61.Replaces the new lines in a string with the given replacement characters.
62.Remove Html
63.Truncates the specified string.
64.Ensures the carriage returns. See http://cr.yp.to/docs/smtplf.html and 822bis section 2.3.
65.Select Single Inner Text
66.Returns a string with non alphanumeric chars converted to the substitute character.
67.Use HttpUtility.HtmlEncode to encode the input string
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.