|
/*
* Copyright (c) 2004 MyXaml
* All Rights Reserved
*
* Licensed under the terms of the GNU General Public License
* http://www.gnu.org/licenses/licenses.html#GPL
*/
using System;
namespace MycroXaml.Parser
{
/// <summary>
/// Helpers for string manipulation.
/// </summary>
public class StringHelpers
{
/// <summary>
/// Left of the first occurance of c
/// </summary>
/// <param name="src"></param>
/// <param name="c"></param>
/// <returns></returns>
public static string LeftOf(string src, char c)
{
int idx=src.IndexOf(c);
if (idx==-1)
{
return src;
}
return src.Substring(0, idx);
}
/// <summary>
/// Left of the n'th occurance of c
/// </summary>
/// <param name="src"></param>
/// <param name="c"></param>
/// <param name="n"></param>
/// <returns></returns>
public static string LeftOf(string src, char c, int n)
{
int idx=-1;
while (n != 0)
{
idx=src.IndexOf(c, idx+1);
if (idx==-1)
{
return src;
}
--n;
}
return src.Substring(0, idx);
}
/// <summary>
/// Right of the first occurance of c
/// </summary>
/// <param name="src"></param>
/// <param name="c"></param>
/// <returns></returns>
public static string RightOf(string src, char c)
{
int idx=src.IndexOf(c);
if (idx==-1)
{
return "";
}
return src.Substring(idx+1);
}
/// <summary>
/// Right of the n'th occurance of c
/// </summary>
/// <param name="src"></param>
/// <param name="c"></param>
/// <returns></returns>
public static string RightOf(string src, char c, int n)
{
int idx=-1;
while (n != 0)
{
idx=src.IndexOf(c, idx+1);
if (idx==-1)
{
return "";
}
--n;
}
return src.Substring(idx+1);
}
public static string LeftOfRightmostOf(string src, char c)
{
int idx=src.LastIndexOf(c);
if (idx==-1)
{
return src;
}
return src.Substring(0, idx);
}
public static string RightOfRightmostOf(string src, char c)
{
int idx=src.LastIndexOf(c);
if (idx==-1)
{
return src;
}
return src.Substring(idx+1);
}
public static string Between(string src, char start, char end)
{
string res=String.Empty;
int idxStart=src.IndexOf(start);
if (idxStart != -1)
{
++idxStart;
int idxEnd=src.IndexOf(end, idxStart);
if (idxEnd != -1)
{
res=src.Substring(idxStart, idxEnd-idxStart);
}
}
return res;
}
public static int Count(string src, char find)
{
int ret=0;
foreach(char s in src)
{
if (s==find)
{
++ret;
}
}
return ret;
}
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.
A list of licenses authors might use can be found here