2012-03-03 3 views
1

Я следующий код:переменной длины String.Format

var str = "ABC"; 
var n = 7; 
var output = String.Format("{0,n}", str); 

Это должно вывести строку

" ABC" 

Как я должен изменить строку выше?

+1

Как общаться 'str.Length' и' n'? Предполагается ли 'n' представлять значение' str.Length'? –

+0

Извините, я допустил ошибку в коде выше и исправил его. –

ответ

8

Формат строки просто строки тоже - вы можете определить формат отдельно:

int n = 3; 
string format = string.Format("{{0,{0}}}", n); 
//or more readable: string format = "{0," + n + "}"; 
var output = string.Format(format, str); 

Edit:

После обновления вашего выглядит как то, что вы хотите, также может быть достигнуто за счет PadLeft():

var str = "ABC"; 
string output = str.PadLeft(7); 
+0

Возможно, я не могу использовать PadLeft, так как строка не всегда постоянна (выше был всего лишь пример), но я тоже забыл об этой функции. Благодарю. –

6

Просто написать:

var lineLength = String.Format("{0," + n + "}", str); 
+0

Более читаемый, чем принятый ответ (и использует меньше строк) – Doug

1
var s="Hello my friend"; 
string leftSpace = s.PadLeft(20,' '); //pad left with special character 
string rightSpace = s.PadRight(20,' '); //pad right with special character 
Смежные вопросы