25
Mar
2011
Working with Strings in DataVoila/C#
In this post, I have compiled a list of code examples for the most common string operations in C#.
Create a String
// Assign "Hello World" to a new variable string helloWorld = "Hello World"; // Backslashes (and other special characters) must be escaped string filePath1 = "C:\\Folder\\File1.txt"; // Instead, you can also use a verbatim string literal that is // prefixed with @ and does not support escape sequences string filePath2 = @"C:\Folder\File2.txt";
Concatenate Strings
string hello = "Hello"; string world = "World"; string helloWorld = hello + " " + world; Console.WriteLine(helloWorld); // "Hello World"
Check if a String Starts or Ends With a SubString
string sample = "DataVoila rocks!"; if (sample.StartsWith("DataVoila")) Console.WriteLine("String starts with substring."); if (sample.EndsWith("!")) Console.WriteLine("String ends with substring."); if (sample.StartsWith("DATAVOILA", StringComparison.InvariantCultureIgnoreCase)) Console.WriteLine("String starts with substring, ignoring case.");
Search a String
string sample = "DataVoila rocks!"; string searchString = "rock"; if (sample.Contains(searchString)) { Console.WriteLine("Search string found at index {0}.", sample.IndexOf(searchString)); } else { Console.WriteLine("Search string NOT found."); }
Extract a Substring From a String
string sample = "The quick brown fox jumps over the lazy dog"; Console.WriteLine(sample.Substring(0, 3)); // "The" Console.WriteLine(sample.Substring(35)); // "lazy dog"
Insert a Substring to a String
string sample = "Hello World"; Console.WriteLine(sample.Insert(5, ", Lovely")); // "Hello, Lovely World"
Remove a Substring From a String
string sample = "Hello, Lovely World"; Console.WriteLine(sample.Remove(5, 8)); // "Hello World"
Replace a Substring in a String
string sample = "Hello, Lovely World"; Console.WriteLine(sample.Replace("Lovely", "Cruel")); // "Hello, Cruel World"
Split a String
string sample = "One,Two,,Three"; char[] delimiter = { ',' }; string[] parts; parts = sample.Split(delimiter); // "One", "Two", "", "Three" //parts = sample.Split(delimiter, StringSplitOptions.RemoveEmptyEntries); // "One", "Two", "Three" //parts = sample.Split(delimiter, 2); // "One", "Two,,Three" foreach (string part in parts) { Console.WriteLine(part); }
Join Strings
string[] parts = new String[] { "One", "Two", "Three" }; Console.WriteLine(string.Join("|", parts)); // "One|Two|Three"
Convert the Case of a String
string sample = "Hello World"; Console.WriteLine(sample.ToLower()); // "hello world"; Console.WriteLine(sample.ToUpper()); // "HELLO WORLD";
Convert a String to TitleCase
string sample = "hello, lovely world"; System.Globalization.TextInfo textInfo = System.Globalization.CultureInfo.CurrentCulture.TextInfo; Console.WriteLine(textInfo.ToTitleCase(sample)); // Hello, Lovely World
Trim a String
string sample = " Hello World! "; Console.WriteLine(sample.Trim()); // "Hello World!" Console.WriteLine(sample.TrimStart()); // "Hello World! " Console.WriteLine(sample.TrimEnd()); // " Hello World!" Console.WriteLine(sample.Trim(new char[] { ' ', '!' })); // "Hello World"
Pad a String
string sample = "42"; Console.WriteLine(sample.PadLeft(5, '0')); // "00042" Console.WriteLine(sample.PadRight(4, '.')); // "42.."
Convert a String to a Numeric Value
string sample1 = "42"; string sample2 = "3.14159"; // Use culture-independent NumberFormatInfo to ensure that "." is recognized // as decimal separator regardless of current locale settings IFormatProvider formatProvider = System.Globalization.NumberFormatInfo.InvariantInfo; int number1 = Convert.ToInt32(sample1); double number2 = Convert.ToDouble(sample2, formatProvider); Console.WriteLine("{0} converts to integer value {1}.", sample1, number1); Console.WriteLine("{0} converts to double value {1}.", sample2, number2);
Iterate Through a String
string sample = "Hello World"; // Use a "for" loop to iterate through the string for (int i = 0; i < sample.Length; i++) { Console.WriteLine(sample[i]); } // Or make a "foreach" loop through the characters foreach (char c in sample) { Console.WriteLine(c); }
Fill a String With Repeating Characters
string sample = new string('*', 10); Console.WriteLine(sample); // "**********"
Reverse a String
string sample = "Hello World"; char[] charArray = sample.ToCharArray(); Array.Reverse(charArray); string reversedSample = new string(charArray); Console.WriteLine(reversedSample); // "dlroW olleH"
Append a Newline Character
string sample = "Hello" + Environment.NewLine + "World"; Console.WriteLine(sample);
Check If a String is Blank
string sample = ""; if (string.IsNullOrEmpty(sample)) Console.WriteLine("String is null or empty.");
Check If a String Contains a Numeric Value
string sample = "3.14159"; double number; bool isNumber = Double.TryParse(sample, System.Globalization.NumberStyles.Any, System.Globalization.NumberFormatInfo.InvariantInfo, out number); if (isNumber) Console.WriteLine("'{0}' can be converted to {1}.", sample, number); else Console.WriteLine("'{0}' cannot be converted to a Double value.", sample);
Check If a String Contains Only Alphanumeric Characters
string sample = "Hello123"; bool isAlphaNum = !string.IsNullOrEmpty(sample) && (sample.ToCharArray().All(c => Char.IsLetter(c) || Char.IsNumber(c))); if (isAlphaNum) Console.WriteLine("String contains only alphanumeric characters."); else Console.WriteLine("String contains non-alphanumeric characters.");
Use StringBuilder For Fast String Concatenation
StringBuilder sb = new StringBuilder(); for (int i = 0; i < 100000; i++) { sb.Append(i.ToString()); } string sample = sb.ToString(); Console.WriteLine("String of length {0} created.", sample.Length);
Comments are closed.