Strings in C# - Part 1
Introduction
The
uncapitalized "string" is an alias type of the System.String class;
this class provides a set of methods to work on strings. Let's list some
of them that we will cover in this article.
ToUpper/ToLower/ToTitleCase Methods
These
case handling methods are used to convert a copy of a given string in
an appropriate case. We need to pay special attention while converting
to tile case because ToTitleCase() method is used with
System.Globalization class. Remember to use System.Globalization
namespace when using any globabization feature.
Generally,
title casing converts the first character of a word to uppercase and
the rest of the characters to lowercase. However, this method does not
currently provide proper casing to convert a word that is entirely
uppercase, such as an acronym. If you really wish to convert entirely
uppercase to title case then, use following special method.
Console.WriteLine(myTI.ToTitleCase(txt2.ToLower()));
Let's look at program and its output to understand better.
The
program given below changes the casing of a string based on the English
(United States) culture, with the culture name en-US.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Globalization;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string txt1 = "test this string";
Console.WriteLine("Using LowerCase and UpperCase without Globalization");
//Convert string to uppercase
Console.WriteLine(txt1.ToUpper());
//Convert string to lowercase
Console.WriteLine(txt1.ToLower());
string txt2 = "TESt";
Console.WriteLine("Using LowerCase and UpperCase with Globalization");
//Creates a TextInfo based on the "en-US" culture.
TextInfo myTI = new CultureInfo("en-US", false).TextInfo;
Console.WriteLine(myTI.ToTitleCase(txt2));
//Use below one for entirely uppder case sentences like "TEST" instead of "TESt"
Console.WriteLine(myTI.ToTitleCase(txt2.ToLower()));
Console.WriteLine(myTI.ToUpper(txt2));
Console.WriteLine(myTI.ToLower(txt2));
Console.ReadKey();
}
}
}
The preceding code will produce the following output:
Length() Method
Its
quite easy to understand. The C# String Length function returns the
total number of characters in the specified string. C# length function
proves itself as very useful one when it is used with some other C#
string functions such as remove, insert etc.
Let's look at program and its output to understand better.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string txt1 = "test this string";
//Simple use
int count = txt1.Length;
Console.WriteLine(count);
//Using with another string methods
Console.WriteLine(txt1.Remove(txt1.Length - 1));
Console.WriteLine(txt1.Remove(txt1.Length - 2));
Console.WriteLine(txt1.Remove(txt1.Length - 3));
Console.WriteLine(txt1.Remove(txt1.Length - 4));
Console.ReadKey();
}
}
}
The preceding code will produce the following output:
Concat() Method
Concatenate
string returns a new string that is composed of two discrete strings.
We Concatenate strings with the + operator as well as the same which
compiles to the string.Concat method. We can also use string.Concat
directly because as internally, the C# compiler converts the plus
operator into string.Concat, so only the syntax is different.
Let's look at the program and its output to understand better.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
//Adding strings using + operator
string str0 = "String 0";
string str1 = "String 1";
string str2 = str0 + " " + str1 + " " + "String 2";
Console.WriteLine(str2);
//Adding string using += operator
string str3 = "String 3";
string str4 = "String 4";
string str5 = "String 5";
str3 += " " + str4 + " " + str5;
Console.WriteLine(str3);
//Adding strings using string.Concat() method
string str6 = "String 6";
string str7 = "String 7";
string str8 = string.Concat(str6 + " " + str7 + " " + "String 8");
Console.WriteLine(str8);
Console.ReadKey();
}
}
}
The preceding code will produce the following output:
Contains() Method
The
contains method can be used if you want to check if a string contains
certain characters. The Contains method provides a case-sensitive
ordinal method for checking string contents. Contains method returns
bool result which is true if the parameter is found, and false if it is
not found.
Let's look at program and its output to understand better.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
//Using Contains method
string str1 = "I am Abhimanyu Kumar Vatsa";
bool result = str1.Contains("Abhimanyu");
Console.WriteLine(result);
//Using Contains in Array
string [] str2 = new string[]{"Abhimanyu", "Kumar", "Vatsa"};
bool result1 = str2.Contains("Abhimanyu");
Console.WriteLine(result1);
bool result2 = str2.Contains("kumar");
Console.WriteLine(result2);
//Using Contains in List
var list = new List<string>();
list.Add("Abhimanyu");
list.Add("Kumar");
list.Add("Vatsa");
if (list.Contains("Abhimanyu")) //try by changing case
{
Console.WriteLine("Abhimanyu Found.");
}
else
{
Console.WriteLine("Abhimanyu Not Found.");
}
//no matter of case here. try by changing case, will not make difference
if (list.Contains("Abhimanyu", StringComparer.OrdinalIgnoreCase))
{
Console.WriteLine("Abhimanyu Found (using StringComparer).");
}
//Using Contains method by calling function/method
findstring(str1);
Console.ReadKey();
}
static void findstring(string getData)
{
bool result3 = getData.Contains("Abhimanyu"); //true
Console.WriteLine(result3);
bool result4 = getData.Contains("kumar"); //false because of case
Console.WriteLine(result4);
}
}
}
The preceding code will produce the following output:
Compare()/CompareTo()/CompareOrdinal() Methods
In
C#, comparison methods, including Compare, CompareTo and CompareOrdinal
provides functionality to determine if one string is ordered before
another when in alphabetical order, or whether it is ordered after or is
equivalent. If the first string is bigger, the result is 1. If both
strings are equal, the result is 0. If the first string is smaller, the
result is -1.
Let's look at program and its output to understand better.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string a = "a"; // it is 1
string b = "b"; // it is 2
int c = string.Compare(a,b);
Console.WriteLine("Compare(a,b) : " + c);
int c1 = string.Compare(b, a);
Console.WriteLine("Compare(b,a) : " + c1);
int c2 = string.CompareOrdinal(b, a);
Console.WriteLine("CompareOrdinal(b, a) : " + c2);
int c3 = string.CompareOrdinal(a, b);
Console.WriteLine("CompareOrdinal(a, b) : " + c3);
int c4 = a.CompareTo(b);
Console.WriteLine("CompareTo(b) : " + c4);
int c5 = b.CompareTo(a);
Console.WriteLine("CompareTo(a) : " + c5);
Console.ReadKey();
}
}
}
The preceding code will produce the following output:
Copy() Method
This method is bit simple, it just returns a fresh new copy of an existing string to another string.
Let's look at a sample program and its output to understand better.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string str1 = "sample text";
string str2 = string.Copy(str1);
Console.WriteLine(str1);
Console.WriteLine(str2);
Console.ReadKey();
}
}
}
The preceding code will produce the following output:
Format() Method
Formats
string literal using other primitives like numerical data and other
strings and the {0} notation we uses. This method uses substitution
technique.
Let's look at program and its output to understand better.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string val1 = "Abhimanyu Kumar Vatsa";
int val2 = 10000;
DateTime val3 = new DateTime(1988, 06, 06);
string result = string.Format("{0} || {1:0.0} || {2:yyyy}", val1, val2, val3);
Console.WriteLine(result);
Console.ReadKey();
}
}
}
The preceding code will produce the following output:
Insert() Method
Receives
a copy of the current string that contains newly inserted string data.
Here we see how we can use the string Insert method to place one string
in the middle of another one, or at any other position.
Let's look at program and its output to understand better.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
//Simple Use
string str1 = "Abhimanyu Vatsa";
string fullname = str1.Insert(10, "Kumar ");
Console.WriteLine(fullname);
//Using with IndexOf
string str2 = "Learning C# easy.";
int index = str2.IndexOf("C# "); //returns 9
string fullSen = str2.Insert(index + "C# ".Length, "is ");
Console.WriteLine(fullSen);
Console.ReadKey();
}
}
}
The preceding code will produce the following output:
Move to next part for more string discussion.
Thanks for reading.
Comments
Post a Comment