C#忽略字符串中的空格{get; set;}声明

时间:2015-09-04 08:47:22

标签: c# string whitespace

我没有对我之前的问题Ignore Whitespace in textfield得到很好的回答,所以我有另一个问题,我希望它会对我有所帮助。

我在c#中有这个字符串声明: public string MyURL { get; set; }

我的问题是:当用户在我的网络应用中设置此字符串时,我可以指定设置器的一些指令来忽略空格吗?

4 个答案:

答案 0 :(得分:4)

private string _myUrl;
public string MyURL {
    get { return _myUrl; }
    set {
        // ...
        _myUrl = value.Replace(" ", string.Empty);
    }
}

修改

猜猜@Dmitry Bychenko是对的。我的答案并未涵盖所有potentiel案件。 Regex将是解决此问题的更好方法!

答案 1 :(得分:3)

空白不仅仅是空格(还有非破坏空格零宽度空间等。),所以我建议使用正则表达式

https://en.wikipedia.org/wiki/Whitespace_character

int count = 0;
var client = new MongoClient(connection);
        // This while loop is to allow us to detect if we are connected to the MongoDB server
        // if we are then we miss the execption but after 5 seconds and the connection has not
        // been made we throw the execption.
        while (client.Cluster.Description.State.ToString() == "Disconnected") {
            Thread.Sleep(100);
            if (count++ >= 50) {
                throw new Exception("Unable to connect to the database. Please make sure that "
                    + client.Settings.Server.Host + " is online");
            }
        }

答案 2 :(得分:0)

您可以使用Replace(" ", String.Empty)来消除所有空格。

private string _MyURL;

public string MyURL
{
    get
    {
        return _MyURL;
    }
    set
    {
        _MyURL = value.Replace(" ", String.Empty);
    }
}

答案 3 :(得分:0)

你的意思是MyURL还没有空格?

这可以帮助你:

    private string _MyURL;
    public string MyURL
    {
        get { return _MyURL; }
        set { _MyURL = value.Replace(" ", ""); }
    }

我为什么添加私有字段的解释很少: 如果你不这样做,你就会创建一个无限循环,因为setter再次调用setter。

希望这有助于你