How to add characters to a string in C#

前端 未结 4 832
时光说笑
时光说笑 2021-01-21 03:13

Problem: I would like add characters to a phone.

So instead of displaying ###-###-####, I would like to display (###) ###-####.

I tried the foll

4条回答
  •  误落风尘
    2021-01-21 03:23

    I would do something like this:

    string FormatPhoneNumber(string phoneNumber)
    {
        if (string.IsNullOrEmpty(phoneNumber))
            throw new ArgumentNullException(nameof(phoneNumber));
    
        var phoneParts = phoneNumber.Split('-');
        if (phoneParts.Length < 3)
            throw new ArgumentException("Something wrong with the input number format", nameof(phoneNumber));
    
        var firstChar = phoneParts[0].First();
        var lastChar = phoneParts[0].Last();
        if (firstChar == '(' && lastChar == ')')
            return phoneNumber;
        else if (firstChar == '(')
            return $"{phoneParts[0]})-{phoneParts[1]}-{phoneParts[2]}";
        else if (lastChar == ')') 
            return $"({phoneParts[0]}-{phoneParts[1]}-{phoneParts[2]}";
    
        return $"({phoneParts[0]})-{phoneParts[1]}-{phoneParts[2]}";
    }
    

    You would use it like this:

    string n = "123-123-1234";
    var formattedPhoneNumber = FormatPhoneNumber(n);
    

提交回复
热议问题