704
Part II: Exploring the C# Library
char[] chrs = { 'a', 'b', 'c' };
idx = str.IndexOfAny(chrs);
Console.WriteLine("Index of first 'a', 'b', or 'c': " + idx);
if(str.StartsWith("C# has", StringComparison.Ordinal))
Console.WriteLine("str begins with \"C# has\"");
if(str.EndsWith("ling.", StringComparison.Ordinal))
Console.WriteLine("str ends with \"ling.\"");
}
}
The output from the program is shown here:
str: C# has powerful string handling.
Index of first 'h': 3
Index of last 'h': 23
Index of first "ing": 19
Index of last "ing": 28
Index of first 'a', 'b', or 'c': 4
str begins with "C# has"
str ends with "ling."
A string search method that you will find useful in many circumstances is Contains( ).
Its general form is shown here:
public bool Contains(string value)
It returns true if the invoking string contains the string specified by value, and false otherwise. 
It uses ordinal sear
specific substring exists within another string. Here is an example that demonstrates its use.
// Demonstrate Contains().
using System;
class ContainsDemo {
static void Main() {
string str = "C# combines power with performance.";
if(str.Contains("power"))
Console.WriteLine("The sequence power was found.");
if(str.Contains("pow"))
Console.WriteLine("The sequence pow was found.");
if(!str.Contains("powerful"))
Console.WriteLine("The sequence powerful was not found.");
}
}
The output is shown here:
The sequence power was found.
The sequence pow was found.
The sequence powerful was not found.
Pdf merge - Merge, append PDF files in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Provide C# Demo Codes for Merging and Appending PDF Document
reader combine pdf; best pdf merger
Pdf merge - VB.NET PDF File Merge Library: Merge, append PDF files in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
VB.NET Guide and Sample Codes to Merge PDF Documents in .NET Project
how to combine pdf files; pdf combine
P
A
R
T
I
I
Chapter 22: Strings and Formatting  
705
As the output shows, Contains( ) searches for a matching sequence, not for whole words. 
Thus, both “pow” and “power” are found. However, because there are no sequences that 
match “powerful”, it is (correctly) not found.
Several of the search methods have additional forms that allow you to begin a search 
at a specified index or to specify a range to search within. All versions of the String search 
methods are shown in Table 22-3.
Method
Description
public bool Contains(string value
Returns true if the invoking string contains the string specified by value. 
False is returned if value is not found. Ordinal searching is used.
public bool EndsWith(string value)
Returns true if the invoking string ends with the string passed in value.
Otherwise, false is returned. Culture-sensitive searching is used.
public bool
EndsWith(string value,
StringComparison
comparisonType)
Returns true if the invoking string ends with the string passed in value.
Otherwise, false is returned. How the search is performed is specified by 
comparisonType.
public bool
EndsWith(string value,
bool ignoreCase,
CultureInfo culture)
Returns true if the invoking string ends with the string passed in value.
Otherwise, false is returned. If ignoreCase is true, the search ignores 
case differences. Otherwise, case differences matter. The search is 
conducted using the cultural information passed in culture.
public int IndexOf(char value)
Returns the index of the first occurrence of value within the invoking 
string. Returns –1 if value is not found. Ordinal searching is used.
public int IndexOf(string value)
Returns the index of the first occurrence of value within the invoking 
string. Returns –1 if value is not found. Culture-sensitive searching 
is used.
public int IndexOf(char value,
int startIndex)
Returns the index of the first occurrence of value within the invoking 
string. Searching begins at the index specified by startIndex. Returns –1 
ifvalue is not found. Ordinal searching is used.
public int IndexOf(string value,
int startIndex)
Returns the index of the first occurrence of value within the invoking 
string. Searching begins at the index specified by startIndex. Returns –1 
ifvalue is not found. Culture-sensitive searching is used.
public int
IndexOf(char value,
int startIndex,
int count)
Returns the index of the first occurrence of value within the invoking 
string. Searching begins at the index specified by startIndex and runs 
forcount elements. Returns –1 if value is not found. Ordinal searching 
is used.
public int
IndexOf(string value,
int startIndex,
int count)
Returns the index of the first occurrence of value within the invoking 
string. Searching begins at the index specified by startIndex and runs 
forcount elements. Returns –1 if value is not found. Culture-sensitive 
searching is used.
public int
IndexOf(string value,
StringComparison
comparisonType)
Returns the index of the first occurrence of value within the invoking 
string. How the search is performed is specified by comparisonType.
Returns –1 if value is not found. 
T
ABLE
22-3  The Search Methods Offered by String 
Online Merge PDF files. Best free online merge PDF tool.
Thus, C#.NET PDF document merge library control can be counted as an efficient .NET doc solution for keeping PDF document files organized. Download Free Trial.
pdf mail merge; attach pdf to mail merge in word
VB.NET PDF Library SDK to view, edit, convert, process PDF file
Tell VB.NET users how to: create a new PDF file and load PDF from other file formats; merge, append, and split PDF files; insert, delete, move, rotate, copy
break pdf into multiple files; c# pdf merge
706
Part II: Exploring the C# Library
public int 
IndexOf(string value,
int startIndex,
StringComparison
comparisonType)
Returns the index of the first occurrence of value within the invoking 
string. Searching begins at the index specified by startIndex. How the 
search is performed is specified by comparisonType. Returns –1 if 
value is not found.
public int
IndexOf(string value,
int startIndex,
int count,
StringComparison
comparisonType)
Returns the index of the first occurrence of value within the invoking 
string. Searching begins at the index specified by startIndex and 
runs for count elements. How the search is performed is specified by 
comparisonType. Returns –1 if value is not found.
public int IndexOfAny(char[ ] anyOf)
Returns the index of the first occurrence of any character in anyOf that is 
found within the invoking string. Returns –1 if no match is found. Ordinal 
searching is used.
public int IndexOfAny(char[ ] anyOf,
int startIndex)
Returns the index of the first occurrence of any character in anyOf that is 
found within the invoking string. Searching begins at the index specified 
by startIndex. Returns –1 if no match is found. Ordinal searching 
is used.
public int IndexOfAny(char[ ] anyOf,
int startIndex,
int count)
Returns the index of the first occurrence of any character in anyOf that is 
found within the invoking string. Searching begins at the index specified 
by startIndex and runs for count elements. Returns –1 if no match is 
found. Ordinal searching is used.
public int LastIndexOf(char value)
Returns the index of the last occurrence of value within the invoking 
string. Returns –1 if value is not found. Ordinal searching is used.
public int LastIndexOf(string value)
Returns the index of the last occurrence of value within the invoking 
string. Returns –1 if value is not found. Culture-sensitive searching 
is used.
public int LastIndexOf(char value,
int startIndex)
Returns the index of the last occurrence of value within a range of the 
invoking string. The search proceeds in reverse order, beginning at the 
index specified by startIndex and stopping at zero. Returns –1 if the 
value is not found. Ordinal searching is used.
public int LastIndexOf(string value,
int startIndex)
Returns the index of the last occurrence of value within a range of the 
invoking string. The search proceeds in reverse order, beginning at the 
index specified by startIndex and stopping at zero. Returns –1 if value
is not found. Culture-sensitive searching is used.
public int
LastIndexOf(char value,
int startIndex,
int count)
Returns the index of the last occurrence of value within the invoking 
string. The search proceeds in reverse order, beginning at the index 
specified by startIndex and running for count elements. Returns –1 if 
value is not found. Ordinal searching is used.
T
ABLE
22-3  The Search Methods Offered by String (continued)
Method
Description
How to C#: Merge Images
Convert Jpeg to PDF; Merge PDF Files; Split PDF Document; Remove Password from PDF; Change PDF Permission Settings. FREE TRIAL: HOW TO:
asp.net merge pdf files; break pdf file into multiple files
C# PDF insert image Library: insert images into PDF in C#.net, ASP
installed. Able to zoom and crop image and achieve image resizing. Merge several images into PDF. Insert images into PDF form field. Access
apple merge pdf; batch pdf merger online
P
A
R
T
I
I
Chapter 22: Strings and Formatting  
707
public int
LastIndexOf(string value,
int startIndex,
int count)
Returns the index of the last occurrence of value within the invoking 
string. The search proceeds in reverse order, beginning at the index 
specified by startIndex and running for count elements. Returns –1 if 
value is not found. Culture-sensitive searching is used.
public int
LastIndexOf(string value,
StringComparison
comparisonType)
Returns the index of the last occurrence of value within the invoking 
string. How the search is performed is specified by comparisonType.
Returns –1 if value is not found. 
public int
LastIndexOf(string value,
int startIndex,
StringComparison
comparisonType)
Returns the index of the last occurrence of value within a range of the 
invoking string. The search proceeds in reverse order, beginning at the 
index specified by startIndex and stopping at zero. How the search is 
performed is specified by comparisonType. Returns –1 if value is not 
found.
public int
LastIndexOf(string value,
int startIndex,
int count,
StringComparison
comparisonType)
Returns the index of the last occurrence of value within the invoking 
string. The search proceeds in reverse order, beginning at the index 
specified by startIndex and running for count elements. How the 
search is performed is specified by comparisonType. Returns –1 if 
value is not found.
public int
LastIndexOfAny(char[ ] anyOf)
Returns the index of the last occurrence of any character in anyOf that is 
found within the invoking string. Returns –1 if no match is found. Ordinal 
searching is used.
public int
LastIndexOfAny(char[ ] anyOf,
int startIndex)
Returns the index of the last occurrence of any character in anyOf that 
is found within the invoking string. The search proceeds in reverse order, 
beginning at the index specified by startIndex and stopping at zero.
Returns –1 if no match is found. Ordinal searching is used.
public int
LastIndexOfAny(char[ ] anyOf, 
int startIndex,
int count)
Returns the index of the last occurrence of any character in anyOf that 
is found within the invoking string. The search proceeds in reverse order, 
beginning at the index specified by startIndex and running for count
elements. Returns –1 if no match is found. Ordinal searching is used.
public bool StartsWith(string value)
Returns true if the invoking string begins with the string passed in value.
Otherwise, false is returned. Culture-sensitive searching is used.
public bool
StartsWith(string value,
StringComparison
comparisonType)
Returns true if the invoking string begins with the string passed in value.
Otherwise, false is returned. How the search is performed is specified by 
comparisonType.
public bool
StartsWith(string value,
bool ignoreCase,
CultureInfo culture)
Returns true if the invoking string begins with the string passed in value.
Otherwise, false is returned. If ignoreCase is true, the search ignores 
case differences. Otherwise, case differences matter. The search is 
conducted using the cultural information passed in culture.
T
ABLE
22-3  The Search Methods Offered by String (continued)
Method
Description
C# WPF PDF Viewer SDK to view, annotate, convert and print PDF in
C#, C# convert PDF to HTML, C# convert PDF to Word, C# extract text from PDF, C# convert PDF to Jpeg, C# compress PDF, C# print PDF, C# merge PDF files, C# view
add pdf files together online; pdf merge files
VB.NET Create PDF from PowerPoint Library to convert pptx, ppt to
C#, C# convert PDF to HTML, C# convert PDF to Word, C# extract text from PDF, C# convert PDF to Jpeg, C# compress PDF, C# print PDF, C# merge PDF files, C# view
combine pdf online; c# merge pdf pages
708
Part II: Exploring the C# Library
Splitting and Joining Strings
Two fundamental string-handling operations are split and join. A split decomposes a string 
into its constituent parts. A join constructs a string from a set of parts. To split a string, 
String defines Split( ). To join a set of strings, String provides Join( ).
There are several versions of Split( ). Two commonly used forms, which have been 
available since C# 1.0, are shown here:
public string[ ] Split(params char[ ] separator)
public string[ ] Split(char[ ] separator, int count)
The first form splits the invoking string into pieces and returns an array containing the 
substrings. The characters that delimit each substring are passed in separator. If separator
is null or refers to an empty string, then whitespace is used as the separator. In the second 
form, no more than count substrings will be returned.
There are several forms of the Join( ) method. Here are two that have been available 
since version 2.0 of the .NET Framework:
public static string Join(string separator, params string[ ] value)
public static string Join(string separator, string[ ] value, int startIndex, int count)
The first form returns a string that contains the concatenation of the strings in value. The 
second form returns a string that contains the concatenation of count strings in value,
beginning at value[startIndex]. For both versions, each string is separated from the next 
by the string specified by separator.
The following program shows Split( ) and Join( ) in action:
// Split and join strings.
using System;
class SplitAndJoinDemo {
static void Main() {
string str = "One if by land, two if by sea.";
char[] seps = {' ', '.', ',' };
// Split the string into parts.
string[] parts = str.Split(seps);
Console.WriteLine("Pieces from split: ");
for(int i=0; i < parts.Length; i++)
Console.WriteLine(parts[i]);
// Now, join the parts.
string whole = String.Join(" | ", parts);
Console.WriteLine("Result of join: ");
Console.WriteLine(whole);
}
}
Here is the output:
Pieces from split:
One
if
by
land
VB.NET Create PDF from Word Library to convert docx, doc to PDF in
C#, C# convert PDF to HTML, C# convert PDF to Word, C# extract text from PDF, C# convert PDF to Jpeg, C# compress PDF, C# print PDF, C# merge PDF files, C# view
add pdf together one file; batch merge pdf
VB.NET PDF- HTML5 PDF Viewer for VB.NET Project
C#, C# convert PDF to HTML, C# convert PDF to Word, C# extract text from PDF, C# convert PDF to Jpeg, C# compress PDF, C# print PDF, C# merge PDF files, C# view
add pdf together; combine pdfs online
P
A
R
T
I
I
Chapter 22: Strings and Formatting  
709
two
if
by
sea
Result of join:
One | if | by | land |  | two | if | by | sea |
Ther
d “land” is 
followed by a comma and a space, as in “land, two”. However, both the comma and the 
space ar
between the two separators (the comma and the space) is returned.
There are several additional forms of Split( ) that take a parameter of type 
StringSplitOptions. This parameter controls whether empty strings are part of the 
resulting split. Here are these forms of Split( ):
public string[ ] Split(char[ ] separator, StringSplitOptionsoptions)
public string[ ] Split(string[ ] separator, StringSplitOptionsoptions)
public string[ ] Split(char[ ] separator, int count,StringSplitOptionsoptions)
public string[ ] Split(string[ ] separator, int count,StringSplitOptionsoptions)
The first two forms split the invoking string into pieces and return an array containing the 
substrings. The characters that delimit each substring are passed in separator. If separator is 
null, then whitespace is used as the separator. In the third and fourth forms, no more than 
count substrings will be returned. For all versions, the value of optionsdetermines how to 
handle empty strings that result when two separators are adjacent to each other. The 
StringSplitOptions enumeration defines only two values: None and RemoveEmptyEntries.
IfoptionsisNone, then empty strings are included in the result (as the previous program 
showed). If optionsisRemoveEmptyEntries, empty strings are excluded from the result.
To understand the effects of removing empty entries, try replacing this line in the 
preceding program:
string[] parts = str.Split(seps);
with the following.
When you run the program, the output will be as shown next:
Pieces from split:
One
if
by
land
two
if
by
sea
Result of join:
One | if | by | land | two | if | by | sea
710
Part II: Exploring the C# Library
As you can see, the empty string that previously resulted because of the combination of the 
comma and space after “land” has been removed.
Splitting a string is an important string-manipulation procedure, because it is often used 
to obtain the individual tokens that comprise the string. For example, a database program 
might use Split( ) to decompose a query such as “show me all balances greater than 100” into 
its individual parts, such as “show” and “100”. In the process, the separators are removed. 
pr
esult.
// Tokenize strings.
using System;
class TokenizeDemo {
static void Main() {
string[] input = {
"100 + 19",
"100 / 3.3",
"-3 * 9",
"100 - 87"
};
char[] seps = {' '};
for(int i=0; i < input.Length; i++) {
// split string into parts
string[] parts = input[i].Split(seps);
Console.Write("Command: ");
for(int j=0; j < parts.Length; j++)
Console.Write(parts[j] + " ");
Console.Write(", Result: ");
double n = Double.Parse(parts[0]);
double n2 = Double.Parse(parts[2]);
switch(parts[1]) {
case "+":
Console.WriteLine(n + n2);
break;
case "-":
Console.WriteLine(n - n2);
break;
case "*":
Console.WriteLine(n * n2);
break;
case "/":
Console.WriteLine(n / n2);
break;
}
}
}
}
P
A
R
T
I
I
Chapter 22: Strings and Formatting  
711
Here is the output:
Command: 100 + 19 , Result: 119
Command: 100 / 3.3 , Result: 30.3030303030303
Command: -3 * 9 , Result: -27
Command: 100 - 87 , Result: 13
Beginning with .NET Framework 4.0, the following additional forms of Join( ) are also 
defined:
public static string Join(string separator, params object[ ] values)
public static string Join(string separator, IEnumerable<string>[ ] values)
public static string Join<T>(string separator, IEnumerable<T>[ ] values)
The first form returns a string that contains the concatenation of the string representation of 
the objects in values. The second form returns a string that contains the concatenation of the 
collection of strings referred to by values. The third form returns a string that contains the 
concatenation of the string representation of the collection of objects in values. In all cases, 
each string is separated from the next by separator.
Padding and Trimming Strings
Sometimes you will want to remove leading and trailing spaces from a string. This type of 
operation, called trimming, is often needed by command processors. For example, a database 
might recognize the word “print”. However, a user might enter this command with one or 
more leading or trailing spaces. Any such spaces must be removed before the string can be 
recognized by the database. Conversely, sometimes you will want to pad a string with 
spaces so that it meets some minimal length. For example, if you are preparing formatted 
output, you might need to ensure that each line is a certain length in order to maintain an 
alignment. Fortunately, C# includes methods that make these types of operations easy.
To trim a string, use one of these Trim( ) methods:
public string Trim( )
public string Trim(params char[ ] trimChars)
The first form removes leading and trailing whitespace from the invoking string. The 
second form removes leading and trailing occurrences of the characters specified by 
trimChars. In both cases, the resulting string is returned.
Y
To pad a string on the left, use one of the methods shown here:
public string PadLeft(int totalWidth)
public string PadLeft(int totalWidth, char paddingChar)
equalstotalWidth. The second form adds the character specified by paddingChar as needed 
to the invoking string so that its total length equals totalWidth. In both cases, the resulting 
string is returned. If totalWidth is less than the length of the invoking string, a copy of the 
invoking string is returned unaltered.
To pad a string to the right, use one of these methods:
public string PadRight(int totalWidth)
public string PadRight(int totalWidth, char paddingChar)
712
Part II: Exploring the C# Library
length equals totalWidth. The second form adds the characters specified by paddingCharas
needed to the invoking string so that its total length equals totalWidth. In both cases, the 
resulting string is returned. If totalWidth is less than the length of the invoking string, a 
copy of the invoking string is returned unaltered.
The following program demonstrates trimming and padding:
// Trimming and padding.
using System;
class TrimPadDemo {
static void Main() {
string str = "test";
Console.WriteLine("Original string: " + str);
// Pad on left with spaces.
str = str.PadLeft(10);
Console.WriteLine("|" + str + "|");
// Pad on right with spaces.
str = str.PadRight(20);
Console.WriteLine("|" + str + "|");
// Trim spaces.
str = str.Trim();
Console.WriteLine("|" + str + "|");
// Pad on left with #s.
str = str.PadLeft(10, '#');
Console.WriteLine("|" + str + "|");
// Pad on right with #s.
str = str.PadRight(20, '#');
Console.WriteLine("|" + str + "|");
// Trim #s.
str = str.Trim('#');
Console.WriteLine("|" + str + "|");
}
}
The output is shown here:
Original string: test
|      test|
|      test          |
|test|
|######test|
|######test##########|
|test|
P
A
R
T
I
I
Chapter 22: Strings and Formatting  
713
Inserting, Removing, and Replacing
You can insert a string into another using the Insert( ) method, shown here:
public string Insert(int startIndex, string value)
Here, the string referred to by value is inserted into the invoking string at the index specified 
bystartIndex. The resulting string is returned.
You can remove a portion of a string using Remove( ), shown next:
public string Remove(int startIndex)
public string Remove(int startIndex, int count)
The first form begins at the index specified by startIndex and removes all remaining characters 
in the string. The second form begins at startIndex and removes countnumber of characters. In 
both cases, the resulting string is returned.
You can replace a portion of a string by using Replace( ). It has these forms:
public string Replace(char oldChar, char newChar)
public string Replace(string oldValue, string newValue)
The first form replaces all occurrences of oldChar in the invoking string with newChar. The 
second form replaces all occurrences of the string referred to by oldValue in the invoking 
string with the string referred to by newValue. In both cases, the resulting string is returned.
Here is an example that demonstrates Insert( ),Remove( ), and Replace( ):
// Inserting, replacing, and removing.
using System;
class InsRepRevDemo {
static void Main() {
string str = "This test";
Console.WriteLine("Original string: " + str);
// Insert
str = str.Insert(5, "is a ");
Console.WriteLine(str);
// Replace string
str = str.Replace("is", "was");
Console.WriteLine(str);
// Replace characters
str = str.Replace('a', 'X');
Console.WriteLine(str);
// Remove
str = str.Remove(4, 5);
Console.WriteLine(str);
}
}
Documents you may be interested
Documents you may be interested