Форматировать длинную строку в короткую строку C # - PullRequest
3 голосов
/ 20 января 2011

У меня есть несколько строк, таких как:

+1,5555555555555
2,3421354325435354545
4.509019292

Я хочу отформатировать их в строку, такую ​​как:

1,5555
2,3421
4,5090

Я пытался использовать формат C # String.Format, но не могу заставить его работать правильно.

Может кто-нибудь дать мне правильное утверждение c # для этого?

Спасибо.

Ответы [ 3 ]

3 голосов
/ 20 января 2011

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

public static string TrimTo(string str, int maxLength)
{
    if (str.Length <= maxLength)
    {
        return str;
    }
    return str.Substring(0, maxLength);
}

Это урезает предоставленную строку до шести символов, если она длиннее шести. Это кажется тем, что вы хотите, но (как указывает Кис) сделает что-то неожиданное со строкой типа "1234567.890".

Условное предложение необходимо здесь, потому что String.Substring будет жаловаться, если второй индекс находится за пределами строки (если строка короче maxLength, другими словами).

(Если вы когда-либо играли с C # 3.0 методами расширения , вы могли бы признать это, слегка измененное выше, отличной возможностью для одного: string trimmed = s.TrimTo(10);)

3 голосов
/ 20 января 2011
0 голосов
/ 20 января 2011

Если вы преобразуете Strings в double, вы можете использовать String.Format, чтобы указать, сколько десятичных разрядов вы хотите включить, когда вы переформатируете его в String.

String.Format("{0:0.0000}", double.Parse("1.55555555555555"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...