Заменить строку на формат строки - PullRequest
0 голосов
/ 25 июня 2011

У меня есть переменная, которая содержит строку, скажем так:

string str = "/a/b/1/cdd/d.jpg"

И у меня есть формат строки, скажем так:

string frmt = "/a/b/{0}/be/"

Теперь я хочу использовать frmt для замены символов в str, что-то вроде этого:

string newstr = str.Replace(frmt);
//result should be: /a/b/1/be/d.jpg

Есть ли в .net framework что-то подобное?Как это можно сделать легко?

Спасибо.

Ответы [ 3 ]

4 голосов
/ 25 июня 2011

Использовать string.Format

string.Format("/a/b/{0}/be/","1")

Или это регулярное выражение, которое вы хотите?

Тогда вам нужно Regex.Replace

0 голосов
/ 07 февраля 2013

Вы можете использовать String.Split для разделения ваших разделов, а затем заменить нужный вам индекс. После этого вы можете восстановить свою строку, используя String.Join.

Вот быстрый и грязный пример:

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string myReplacement = "4";
            StringBuilder temp = new StringBuilder();
            string str = "/a/b/1/cdd/d.jpg";
            string[] splitArray = new string[] { "/" };
            string[] split = str.Split(splitArray,StringSplitOptions.RemoveEmptyEntries );

            if (split.Length > 1)
                split[2] = myReplacement;

            str = "/" + string.Join("/", split);     
        }
    }
}
0 голосов
/ 07 февраля 2013

Использовать StringBuilder

string testString ="some {replace_me} text";
StringBuilder sb = new StringBuilder(testString);
sb.Replace("{replace_me}", "new");
sb.ToString();

sb.ToString () будет иметь "некоторый новый текст"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...