Удалить последние указанные c символов из строки - PullRequest
0 голосов
/ 04 мая 2020

Я ищу способ удалить указанные c символы из строки.

Строка содержит буквы и цифры. Я хочу вырезать последние или последние 2 цифры. Это всегда цифры и всегда последние или последние 2 цифры. Я знаю, что я хочу вырезать.

string s = lblTemperature104;
int thermometer 4;

В вышеприведенном случае результат должен быть "lblTe Temperature10"

Должно выглядеть примерно так. Извините, если это трудно понять, но я не могу придумать другого пути.

public void stringCutter (string s, int toCut){
     s.cutFromBehind(toCut);

Если у вас возникли проблемы с пониманием моего вопроса, не стесняйтесь спрашивать. Спасибо!

Ответы [ 3 ]

0 голосов
/ 04 мая 2020

А как насчет String.Substring ?

. Позволяет указать начальную и конечную позиции для взятия строки.

string s = "lblTemperature104";
int thermometer = 4;

string cutString = stringCutter(s, 1); // output -> lblTemperature10

public static string stringCutter(string s, int toCut)
{
        return s.Substring(0, (s.Length - toCut));
}

Я не понимаю как вы знаете, сколько чисел обрезать до конца, поэтому я предполагаю, что вы передаете уже известное значение "toCut" методу. (поправьте меня, если я ошибаюсь)

0 голосов
/ 04 мая 2020

Если я правильно понимаю ваш вопрос, вам нужно удалить два последних символа из вашей строки.

Во-первых, мы исправим ваш код, это должно быть:

string s = "lblTemperature104";
int thermometer = 4;

Второе is: Нет разницы между буквами и цифрами, когда вы работаете с типом string .

Третья вещь - это ответ на ваш вопрос: вам на самом деле не нужна ни одна дополнительная функция stringCutter, если вы будете использовать метод String.Remove следующим образом:

s = s.Remove(s.Length - 1, lng);

lng - это количество символов, которое вы хотите удалить. Если вы всегда будете удалять только 2 символа, вы можете просто написать:

s = s.Remove(s.Length - 1, 2);

Это еще одно возможное решение. Но, как упоминал Грэм Ормонд, вы можете сделать то же самое с String.Substring . Согласно этому вопросу , String.Substring быстрее, чем String.Remove.

0 голосов
/ 04 мая 2020

Вы можете использовать регулярные выражения для достижения этого сценария.

Регулярное выражение: (.*)\w{2}

Вы также можете использовать Remove (), которая используется для сокращения строк и исключения диапазона символов.

string str = "lblTemperature104";
str= str.Remove(str.Length - 2);
...