Манипуляции с строками в C # - PullRequest
       0

Манипуляции с строками в C #

0 голосов
/ 27 сентября 2011

Есть ли какой-нибудь метод, который я могу использовать, который возвращает массив фиксированной длины после разделения строки с некоторым разделителем и заполнения остальных строкой по умолчанию.Например.

string fullName = "Jhon Doe";
string[] names = fullName.SpecialSplit(some parameters); //This should always return string array of length 3 with the second elememnt set to empty if there is no middle name.

Ответы [ 3 ]

1 голос
/ 27 сентября 2011

В следующий раз укажите язык, о котором вы спрашиваете.Мы не гадатели.

В Java:

fullName.split(" ");

И в любом случае, ни один метод не "вернет строковый массив длины 3 со вторым элементом, установленным равным пустому, если нет среднего имени».Для метода есть только два элемента.Вы должны написать этот метод самостоятельно, оборачивая стандартный метод split ().

0 голосов
/ 27 сентября 2011

Я бы настроил его на разделение строки отдельно от фиксированного массива. Если вы по-прежнему хотите фиксированный массив, то вы должны установить размер массива до трех. Однако это не лучший метод, так как он не имеет смысла. Лучше настроить класс пользователя или пользователя, а затем заполнить с помощью правил разделенную строку.

0 голосов
/ 27 сентября 2011

Вы должны прочитать над Джона Скита: «Написание идеального вопроса» . Это будет полезно для вас в будущем при публикации вопросов StackOverflow.

В C # нет способа сделать то, что вы просите, но вы можете легко написать метод расширения , чтобы сделать то, о чем вы, я думаю, спрашиваете.

вот краткий пример:

public static class AbreviatorExtention
    {

        public static string[] GetInitials(this String str, char splitChar)
        {
            string[] initialArray = new string[3];
            var nameArray = str.Split(new char[] { splitChar },
                            StringSplitOptions.RemoveEmptyEntries);

            if (nameArray.Length == 2)
            {
                var charArrayFirstName = nameArray[0].ToCharArray();
                var charArrayLastName = nameArray[1].ToCharArray();

                initialArray[0] = charArrayFirstName[0].ToString().ToUpper();
                initialArray[1] = string.Empty;
                initialArray[2] = charArrayLastName[0].ToString().ToUpper();
            }
            else
            {
                for (int i = 0; i < nameArray.Length; i++)
                {
                    initialArray[i] = (nameArray[i].ToCharArray())[1]
                                      .ToString().ToUpper();
                }
            }


            return initialArray;
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            string FullName = "john doe";

            //Extension method in use
            string[] names = FullName.GetInitials(' ');

            foreach (var item in names)
            {
                Console.WriteLine(item); 
            }

            Console.ReadLine();
        }
    }

Выход:

J

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