A collection of awesome string extension methods.
Name | Info |
---|---|
Awesome.StringExtensions |
The following string extensions are available in Awesome.StringExtensions:
- CleanWhitespace
- CountSentences
- CountUniqueWords
- CountWordLengths
- CountWords
- RemoveWhitespace
- ReplaceWhitespace
- Sentences
- ToAcronym
- ToAlphabetic
- ToAlphanumeric
- ToCamelCase
- ToSentenceCase
- ToSnakeCase
- ToTitleCase
- UniqueWords
- Words
Cleans text whitespace and returns the result.
- Replaces contiguous sequences of whitespace with a single space.
- Also Removes all leading and trailing whitespaces.
/// <summary>
/// Replaces contiguous sequences of whitespace with a single space.
/// Also Removes all leading and trailing whitespaces.
/// </summary>
/// <param name="text">Input text.</param>
/// <returns>Input text with no leading, trailing or contiguous sequences of whitespace.</returns>
public static string CleanWhitespace(this string text)
Count the number of sentences.
/// <summary>
/// Count the number of sentences.
/// </summary>
/// <param name="text">Input text.</param>
/// <returns>The number of sentences in the input text.</returns>
public static int CountSentences(this string text)
Count the number of unique words in specified text.
/// <summary>
/// Count the number of unique words in specified text.
/// </summary>
/// <param name="text">Input text.</param>
/// <returns>The unique words count.</returns>
public static int CountUniqueWords(this string text)
Count the occurrence of all different word lengths.
/// <summary>
/// Count the occurrence of all different word lengths.
/// </summary>
/// <param name="text">Input text.</param>
/// <returns>The ordered list of occurrences of all different word lengths.</returns>
public static IOrderedEnumerable<(int Length, int Count)> CountWordLengths(this string text)
Count the number of words.
/// <summary>
/// Count the number of words.
/// </summary>
/// <param name="text">Input text.</param>
/// <returns>The numbers of words in the input text.</returns>
public static int CountWords(this string text)
Removes all whitespaces and returns result.
/// <summary>
/// Removes all whitespaces and returns result.
/// </summary>
/// <param name="text">Input text.</param>
/// <returns>Input text with no whitespaces.</returns>
public static string RemoveWhitespace(this string text)
Replaces all whitespaces with specified replacement string and returns result.
/// <summary>
/// Replaces all whitespaces with specified replacement string and returns result.
/// </summary>
/// <param name="text">Input text.</param>
/// <param name="replacement">Replacement string, default empty string.</param>
/// <param name="groupreplace">Replace contiguous sequences of whitespace with single replacement string boolean, default true.</param>
/// <returns>Input text with all whitespaces replaced with the replacement string.</returns>
public static string ReplaceWhitespace(this string text, string replacement = "", bool groupreplace = true)
Get all sentences in specified text.
/// <summary>
/// Get all sentences in specified text.
/// </summary>
/// <param name="text">Input text.</param>
/// <param name="cleanNewLine">Clean new lines boolean, default true.</param>
/// <param name="cleanWhitepace">Clean whitespaces boolean, default true. Otherwise preserve all whitespaces.</param>
/// <returns>All found and not empty sentences from input text.</returns>
public static IEnumerable<string> Sentences(this string text, bool cleanNewLine = true, bool cleanWhitepace = true)
Creates a acronym for the specified text and returns result.
- Removes all non alphabetical characters and forms an acronym from all principle words.
- Definition of acronym - an abbreviation formed from the initial letters of other words and pronounced as a word (e.g. ASCII, NASA).
- For culture handling, see Supported languages.
/// <summary>
/// Creates a acronym for the specified text and returns result.
/// Removes all non alphabetical characters and forms an acronym from all principle words.
/// </summary>
/// <param name="text">Input text.</param>
/// <param name="culture">Language culture to retrive and identify words.</param>
/// <param name="onlyPrincipalWords">Use only principal words boolean, default true. Otherwise include all words.</param>
/// <returns>An acronym for the input text.</returns>
/// <remarks>Definition of acronym - an abbreviation formed from the initial letters of other words and pronounced as a word (e.g. ASCII, NASA).</remarks>
public static string ToAcronym(this string text, CultureInfo culture, bool onlyPrincipalWords = true)
/// <summary>
/// Creates a acronym for the specified text and returns result.
/// Removes all non alphabetical characters and forms an acronym from all principle words.
/// With current culture specific handling of articles, conjunctions and prepositions.
/// </summary>
/// <param name="text">Input text.</param>
/// <param name="onlyPrincipalWords">Use only principal words boolean, default true. Otherwise include all words.</param>
/// <returns>An acronym for the input text.</returns>
public static string ToAcronym(this string text, bool onlyPrincipalWords = true)
Remove all non alphabetical characters and returns result.
/// <summary>
/// Remove all non alphabetical characters and returns result.
/// </summary>
/// <param name="text">Input text.</param>
/// <param name="preserveWhitespace">Preserve whitespaces boolean, default true. Otherwise removes all whitespaces.</param>
/// <returns>Input text without any non alphabetical characters.</returns>
public static string ToAlphabetic(this string text, bool preserveWhitespace = true)
Removes all non alphanumerical characters and returns result.
/// <summary>
/// Removes all non alphanumerical characters and returns result.
/// </summary>
/// <param name="text">Input text.</param>
/// <param name="preserveWhitespace">Preserve whitespaces boolean, default true. Otherwise removes all whitespaces.</param>
/// <returns>Input text without any non alphanumerical characters.</returns>
public static string ToAlphanumeric(this string text, bool preserveWhitespace = true)
Capitalizes the first letter of each word and removes all whitespaces.
/// <summary>
/// Capitalizes the first letter of each word and removes all whitespaces.
/// Also removes all non alphabetical characters.
/// </summary>
/// <param name="text">Input text.</param>
/// <returns>Input text with first letter of each word capitalized and without whitespaces.</returns>
public static string ToCamelCase(this string text)
Capitalizes the first letter of the first word and all other words are lowercase in each sentence.
/// <summary>
/// Capitalizes the first letter of the first word and all other words are lowercase in each sentence.
/// </summary>
/// <param name="text">Input text.</param>
/// <param name="cleanWhitespace">Clean whitespaces boolean, default true. (<see cref="CleanWhitespace(string)"/>)</param>
/// <returns>Input text with first letter of the first word capitalized and all other words in lowercase in each sentence.</returns>
public static string ToSentenceCase(this string text, bool cleanWhitespace = true)
All whitespaces are replaced with underscore character.
- Replaces all contiguous sequences of whitespace with a single underscore.
/// <summary>
/// All whitespaces are replaced with underscore character.
/// Replaces all contiguous sequences of whitespace with a single underscore.
/// </summary>
/// <param name="text">Input text.</param>
/// <returns>Input text with all whitespaces replaced with underscore character.</returns>
public static string ToSnakeCase(this string text)
Converts string to title case with culture specific handling of articles, conjunctions and prepositions.
Rules:
- Capitalize the first word and the last word of the title.
- Capitalize the principal words.
- Capitalize all words of four letters or more.
- Do not capitalize articles, conjunctions, and prepositions of three letters or fewer.
/// <summary>
/// Converts string to title case with culture specific handling of articles, conjunctions and prepositions.
/// </summary>
/// <param name="text">Input text.</param>
/// <param name="culture">Language culture to retrive and identify words.</param>
/// <returns>Input text with word casing based on title case rules.</returns>
/// <remarks>
/// Rules:
/// - Capitalize the first word and the last word of the title.
/// - Capitalize the principal words.
/// - Capitalize all words of four letters or more.
/// - Do not capitalize articles, conjunctions, and prepositions of three letters or fewer.
/// </remarks>
public static string ToTitleCase(this string text, CultureInfo culture)
/// <summary>
/// Converts string to title case with current culture specific handling of articles, conjunctions and prepositions.
/// </summary>
/// <param name="text">Input text.</param>
/// <returns>Input text with word casing based on title case rules. (<see cref="ToTitleCase(string, CultureInfo)"/>)</returns>
public static string ToTitleCase(this string text)
Language | Culture Data |
---|---|
English | en-US |
French | fr-FR |
German | de-DE |
Spanish | es-ES |
Swedish | sv-SE |
If culture data is not found for specified culture, attempt is made to find another support data with same base language. e.g. If culture en-GB is not found, a search is made based on culture TwoLetterISOLanguageName (en). Any culture with same base language will be used as a replacement. (en-US could replace en-GB)
Get all unique words in specified text.
/// <summary>
/// Get all unique words in specified text.
/// </summary>
/// <param name="text">Input text.</param>
/// <returns>All unique words from input text.</returns>
public static IEnumerable<string> UniqueWords(this string text)
Get all words in specified text.
/// <summary>
/// Get all words in specified text.
/// </summary>
/// <param name="text">Input text.</param>
/// <returns>All found and not empty words from input text.</returns>
/// <remarks>All empty and only whitespace words are excluded.</remarks>
public static IEnumerable<string> Words(this string text)
The MIT License (MIT), see LICENSE file.