Извлеките только право большинство букв n от строки

@@IDENTITY не безопасный объем и получит Вас назад идентификатор от другой таблицы, если у Вас есть вставка, включают исходную таблицу, всегда используют SCOPE_IDENTITY()

105
задан ArunPratap 21 September 2019 в 09:29
поделиться

8 ответов

string SubString = MyString.Substring(MyString.Length-6);
150
ответ дан 24 November 2019 в 03:54
поделиться

Предполагаю ваши требования, но следующее регулярное выражение даст результат только с 6 буквенно-цифровыми символами перед концом строки и не совпадет в противном случае.

string result = Regex.Match("PER 343573", @"[a-zA-Z\d]{6}$").Value;
5
ответ дан 24 November 2019 в 03:54
поделиться

MSDN

String mystr = "PER 343573";
String number = mystr.Substring(mystr.Length-6);

РЕДАКТИРОВАТЬ: слишком медленно ...

13
ответ дан 24 November 2019 в 03:54
поделиться

Используйте это:

String text = "PER 343573";
String numbers = text;
if (text.Length > 6)
{
    numbers = text.Substring(text.Length - 6);
}
5
ответ дан 24 November 2019 в 03:54
поделиться

Вероятно, лучше использовать метод расширения:

public static class StringExtensions
{
    public static string Right(this string str, int length)
    {
        return str.Substring(str.Length - length, length);
    }
}

Использование

string myStr = "ABCDEPER 343573";
string subStr = myStr.Right(6);
38
ответ дан 24 November 2019 в 03:54
поделиться

Это не совсем то, что вы просите, но, просто глядя на пример, кажется, что вы ищете числовую часть строки.

Если это всегда случае, то хороший способ сделать это - использовать регулярное выражение.

var regex= new Regex("\n+");
string numberString = regex.Match(page).Value;
7
ответ дан 24 November 2019 в 03:54
поделиться

Напишите метод расширения для выражения функции Right (n); . Функция должна обрабатывать пустые или пустые строки, возвращающие пустую строку, строки короче максимальной длины, возвращающие исходную строку, и строки длиннее максимальной длины, возвращающие максимальную длину крайних правых символов.

public static string Right(this string sValue, int iMaxLength)
{
  //Check if the value is valid
  if (string.IsNullOrEmpty(sValue))
  {
    //Set valid empty string as string could be null
    sValue = string.Empty;
  }
  else if (sValue.Length > iMaxLength)
  {
    //Make the string no longer than the max length
    sValue = sValue.Substring(sValue.Length - iMaxLength, iMaxLength);
  }

  //Return the string
  return sValue;
}
68
ответ дан 24 November 2019 в 03:54
поделиться

Без использования преобразователя бит и сдвига бит (необходимо быть уверенным в кодировании) это самый быстрый метод, который я использую в качестве метода расширения 'Верно'.

string myString = "123456789123456789";

if (myString > 6)
{

        char[] cString = myString.ToCharArray();
        Array.Reverse(myString);
        Array.Resize(ref myString, 6);
        Array.Reverse(myString);
        string val = new string(myString);
}
0
ответ дан 24 November 2019 в 03:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: