Я прочитал этот вопрос, чтобы получить первую строку char. Есть ли способ получить первое число символов из строки в С#?
Как получить первый пять символов строки
Ответ 1
Вы можете использовать Enumerable.Take как:
char[] array = yourStringVariable.Take(5).ToArray();
Или вы можете использовать String.Substring.
string str = yourStringVariable.Substring(0,5);
Помните, что String.Substring
может генерировать исключение в случае длины строки меньше требуемых символов.
Если вы хотите вернуть результат в строку, вы можете использовать:
-
Использование String Constructor и LINQ
Take
string firstFivChar = new string(yourStringVariable.Take(5).ToArray());
Плюс с подходом не проверяет длину перед рукой.
- Другим способом является использование
String.Substring
с проверкой ошибок
как:
string firstFivCharWithSubString =
!String.IsNullOrWhiteSpace(yourStringVariable) && yourStringVariable.Length >= 5
? yourStringVariable.Substring(0, 5)
: yourStringVariable;
Ответ 2
Попробуйте:
yourString.Substring(0, 5);
Отметьте Подстроку С#, Метод String.Substring
Ответ 3
Вы можете использовать Substring (int startIndex, int length)
string result = str.Substring(0,5);
Подстрока начинается с указанной позиции символа и имеет указанную длину. Этот метод не изменяет значение текущего экземпляра. Вместо этого он возвращает новую строку с символами длины, начиная с позиции startIndex в текущей строке, MSDN
Что делать, если длина исходной строки не превышает пяти символов? Вы получите исключение, используя вышеуказанный метод. Мы можем поставить условие, чтобы проверить, если число символов в строке больше 5, а затем получить первые пять через Substring. Примечание. Я присвоил исходную строку переменной firstFiveChar. FirstFiveChar не изменяется, если символы меньше 5, так что в противном случае часть не требуется.
string firstFiveChar = str;
If(!String.IsNullOrWhiteSpace(yourStringVariable) && yourStringVariable.Length >= 5)
firstFiveChar = yourStringVariable.Substring(0, 5);
Ответ 4
Никто не упоминал, как делать правильные проверки при использовании Substring()
, поэтому я хотел внести свой вклад в это.
Если вы не хотите использовать Linq
и переходите с Substring()
, вы должны убедиться, что ваша строка больше, чем второй параметр (длина) функции Substring()
.
Скажем, вам нужны первые 5 символов. Вы должны получить их с надлежащей проверкой, например:
string title = "love" // 15 characters
var firstFiveChars = title.Length <= 5 ? title : title.Substring(0, 5);
// firstFiveChars: "love" (4 characters)
Без этой проверки функция Substring()
выдаст исключение, потому что она будет перебирать буквы, которые там не существуют.
Я думаю, вы поняли, что...
Ответ 5
Проблема с .Substring(,)
заключается в том, что вам нужно быть уверенным, что данная строка имеет как минимум длину запрошенного количества символов, иначе будет вызываться ArgumentOutOfRangeException
.
Решение 1 (с использованием "Подстрока" ):
var firstFive = stringValue != null ?
stringValue.Substring(0, stringValue.Length >= 5 ? 5 : stringValue.Length) :
null;
Недостатком использования .Substring(
является то, что вам нужно будет проверить длину данной строки.
Решение 2 (используя "Take" ):
var firstFive = stringValue != null ?
string.Join("", stringValue.Take(5)) :
null;
Использование 'Take' предотвратит необходимость проверки длины данной строки.
Ответ 6
Я не знаю, почему кто-то упомянул об этом. Но это самый короткий и самый простой способ добиться этого.
string str = yourString.Remove(n);
n
- количество символов, которые вам нужны
Пример
var zz = "7814148471";
Console.WriteLine(zz.Remove(5));
//result - 78141
Ответ 7
Добавьте пять пробельных символов, затем отрежьте первые пять и обрезайте результат. Количество добавленных вами мест должно совпадать с номером, который вы нарезаете. Обязательно укажите скобки перед .Substring(0,X)
или ничего не добавите.
string str = (yourStringVariable + " ").Substring(0,5).Trim();
С помощью этой техники вам не придется беспокоиться о ArgumentOutOfRangeException
, упомянутом в других ответах.
Ответ 8
string str = "GoodMorning"
string strModified = str.Substring(0,5);
Ответ 9
Используйте функцию PadRight, чтобы предотвратить слишком короткую строку, возьмите то, что вам нужно, а затем обрежьте пробелы с конца в одном выражении.
strSomeString = strSomeString.PadRight(50).Substring(0,50).TrimEnd();
Ответ 10
Ниже приведен метод расширения, который проверяет, больше ли строка, чем требуется, и сокращает строку до заданного максимального количества символов и добавляет "...".
public static class StringExtensions
{
public static string Ellipsis(this string s, int charsToDisplay)
{
if (!string.IsNullOrWhiteSpace(s))
return s.Length <= charsToDisplay ? s : new string(s.Take(charsToDisplay).ToArray()) + "...";
return String.Empty;
}
}
Ответ 11
Чтобы получить первое n количество символов из строки в С#
String yourstring="Some Text";
String first_n_Number_of_Characters=yourstring.Substring(0,n);
Ответ 12
Я использую:
var firstFive = stringValue?.Substring(0, stringValue.Length >= 5 ? 5 : customAlias.Length);
или альтернативу, если вы хотите также проверить значение Whitespace (вместо Null):
var firstFive = !String.IsNullOrWhiteSpace(stringValue) && stringValue.Length >= 5 ? stringValue.Substring(0, 5) : stringValue
Ответ 13
Или вы можете использовать String.ToCharArray().
Он принимает int startindex
и int length
как параметры и возвращает a char[]
new string(stringValue.ToCharArray(0,5))
Вам все равно нужно убедиться, что строка имеет правильную длину, иначе она будет бросать ArgumentOutOfRangeException
Ответ 14
Если нам нужно только первые 5 символов из любого поля, то это может быть достигнуто с помощью левого атрибута
Vessel = f.Vessel !=null ? f.Vessel.Left(5) : ""
Ответ 15
Попробуйте ввести код
string Name = "Abhishek";
string firstfour = Name.Substring(0, 4);
Response.Write(firstfour);
Ответ 16
Я пробовал вышеупомянутые ответы, и я думаю, что это лучший
@item.First_Name.Substring(0,1)
В этом я мог получить первую букву строки