(410101a21) Add an extension method for replacing strings if a condition is met.

This commit is contained in:
Joonas Rikkonen
2019-04-16 17:09:41 +03:00
parent f2d0d3a56a
commit 9ec8659c89
3 changed files with 44 additions and 122 deletions
@@ -8,6 +8,22 @@ namespace Barotrauma
{
public static class StringFormatter
{
public static string Replace(this string s, string replacement, Func<char, bool> predicate)
{
var newString = new string[s.Length];
for (int i = 0; i < s.Length; i++)
{
char letter = s[i];
string newLetter = letter.ToString();
if (predicate(letter))
{
newLetter = replacement;
}
newString[i] = newLetter;
}
return new string(newString.SelectMany(str => str.ToCharArray()).ToArray());
}
public static string Remove(this string s, Func<char, bool> predicate)
{
return new string(s.ToCharArray().Where(c => !predicate(c)).ToArray());