Измените переменную обратно на исходное значение после сопоставления с регулярным выражением - PullRequest
0 голосов
/ 30 апреля 2010

Я только что «закончил» расширять свой тестер Palindrome, сделанный на C #. Чтобы учесть фразы, я добавил простое регулярное выражение для всех не алфавитно-цифровых символов. В конце программы говорится, что это «палиндром». Но теперь с регулярным выражением он печатает версию без пробелов и знаков препинания.

Я хотел бы иметь возможность распечатать исходный ввод пользователя. Как мне это сделать?

Вот моя программа: http://gist.github.com/384565

1 Ответ

1 голос
/ 30 апреля 2010
  1. Вызов ToLower() сам по себе ничего не делает. Строки являются неизменяемыми, то есть невозможно изменить экземпляр строки. Функция ToLower() возвращает новую строку, поэтому вы должны сохранить это значение в переменной (той же или новой).
  2. Чтобы вернуть значение, переданное в функцию, просто создайте новую строковую переменную.

Как это:

public static string Tester(string input)
{
    string pattern = "\\W";

    string data = Regex.Replace(input.ToLower(), pattern, String.Empty);

    if (data == StringHelper.ReverseString(data))
    {
        Console.Write(input); Console.Write(" is a Palindrome.");
    }
    else
    {
        Console.Write(input); Console.Write(" isn't a Palindrome.");
    }

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