dinesh_redhawk Ответов: 4

Как разделить строку на несколько частей C#


Здравствуйте, у меня есть строка, которую мне нужно разделить на разные части.

строка strcode: "qwer-tyui-opas-dfghdineshkumardora@yahoo.com08032018"

Выход должен быть:

invitecode = " qwer-tyui-opas-dfgh"
emailIID = "dineshkumardora@yahoo.com"
дата = " 08032018"

Я могу получить код приглашения и дату, но столкнулся с проблемой при извлечении идентификатора электронной почты

Что я уже пробовал:

invitecode = strcode. substring(0,19)
date= strcode. substring ((strcode.длина-8), 8)

необходимо извлечь идентификатор электронной почты.

F-ES Sitecore

У вас есть длина Первого БИТа текста, поэтому электронное письмо начинается после этого. Длина письма тогда равна длине строки-19-8, поэтому сделайте некоторые математические вычисления и используйте подстроку, чтобы получить из позиции 19 длину письма

4 Ответов

Рейтинг:
7

Patrice T

У вас уже есть все необходимое

invitecode = strcode.substring(0,19)
date= strcode.substring((strcode.length-8),8)

Первая часть начинается с 0, а длина равна 19, последний символ равен 0+19-1 => 18
вторая часть начинается после первой и заканчивается перед третьей.
длина второй части-strcode.длина-19-8

emailIID= strcode.substring((19, strcode.length-19-8)


Рейтинг:
28

xszaboj

Ну, если вы знаете, что пригласительный код - это первые 19 символов, а данные-последние восемь символов, то электронная почта-это всегда все остальное, не так ли?

/*неправильный*/
email = strcode. substring(19, (strcode.длина-8))

нет к сожалению это так:
/*правильный*/

strcode.Substring(19, (strcode.Length - 27));


модульный тест здесь:
[TestClass]
    public class UnitTest1
    {
        [TestMethod]
        public void TestMethod1()
        {
            string strcode = "qwer-tyui-opas-dfghdineshkumardora@yahoo.com08032018";
            var invitecode = strcode.Substring(0, 19);
            var date = strcode.Substring((strcode.Length - 8), 8);
            var email = strcode.Substring(19, (strcode.Length - 27));
            Assert.AreEqual("qwer-tyui-opas-dfgh", invitecode);
            Assert.AreEqual("dineshkumardora@yahoo.com", email);
            Assert.AreEqual("08032018", date);
        }
    }


Рейтинг:
15

Karthik_Mahalingam

попробовать это

string invitecode = strcode.Substring(0, 19);
       string date = strcode.Substring(strcode.Length - 8);
       string emailIID = strcode.Replace(invitecode, "").Replace(date, "");


Рейтинг:
1

Praneet Nadkar

Привет,

Добавьте идентификатор между строками, а затем используйте его для разделения на массив. Как насчет того, чтобы установить вашу строку как :

string strcode: "qwer-tyui-opas-dfgh;dineshkumardora@yahoo.com;08032018" 
 or 
string strcode: "qwer-tyui-opas-dfgh%dineshkumardora@yahoo.com%08032018" 


Затем используя его как:
string[] words = s.Split(';'); // words will have all three strings.


Для получения более подробной информации проверьте это :
http://www.dotnetperls.com/split[^]