C # escape-символы - PullRequest
       1

C # escape-символы

2 голосов
/ 25 августа 2011

например

for (int i = 0; i < speaker.Length; i++) {
    s.WriteLine(speakerAmt[i] + \t + speakerID[i]);
}

Я пытаюсь получить символ табуляции между speakerAmt [i] и speakerID [i].Должны ли экранирующие символы быть в "" "" (кавычки)?

РЕДАКТИРОВАТЬ: Спасибо!менее чем за 50 секунд у меня было около 5 ответов.Я впечатлен!

Ответы [ 10 ]

10 голосов
/ 25 августа 2011

Сделайте это:

for (int i = 0; i < speaker.Length; i++)
{
    s.WriteLine(speakerAmt[i] + "\t" + speakerID[i]);
}

И лучше сделать следующее

for (int i = 0; i < speaker.Length; i++)
{
    s.WriteLine(string.Format("{0}\t{1}",speakerAmt[i],speakerID[i]);
}
4 голосов
/ 25 августа 2011

escape-символы являются символами, поэтому они должны быть в одинарных кавычках '\t'.Или вы можете создать строку с одним escape-символом, который делает ее "\t".Без кавычек \t запрещено.

3 голосов
/ 25 августа 2011

Да, они должны быть в строке

for (int i = 0; i < speaker.Length; i++)
{
   s.WriteLine(speakerAmt[i] + "\t" + speakerID[i]);
}
3 голосов
/ 25 августа 2011

Да - вам нужно сделать это:

 s.WriteLine(speakerAmt[i] + "\t" + speakerID[i]);
3 голосов
/ 25 августа 2011

Да, они делают

string str = "Hello\tWorld!\n";
3 голосов
/ 25 августа 2011

Да, кавычки необходимы.

s.WriteLine(speakerAmt[i] + "\t" + speakerID[i]);

Зачем это нужно:

Потому что это escape-последовательность, которая является частью строки. \t есть. Как:

var hi = "Hello\tWorld";

Компилятор просто интерпретирует это особым образом, когда используется в контексте строки. Символ \ в строке обычно обозначает начало escape-последовательности (исключение: строковые литералы). Вот еще один пример, который также использует вкладку другим способом:

var hi = "Hello\u0009World";

Подробнее о строках, литералах и escape-последовательностях вы можете прочитать в документации .

3 голосов
/ 25 августа 2011
for (int i = 0; i < speaker.Length; i++)
{
    s.WriteLine(speakerAmt[i] + "\t" + speakerID[i]);
}
2 голосов
/ 25 августа 2011

да, вы должны использовать s.WriteLine(speakerAmt[i] + "\t" + speakerID[i]);. C # escape-символы

1 голос
/ 25 августа 2011

Да!

for (int i = 0; i < speaker.Length; i++)
{
   s.WriteLine(speakerAmt[i] + "\t" + speakerID[i]);
}
0 голосов
/ 17 марта 2017

начиная с C # 6, еще лучше сделать:

for (int i = 0; i < speaker.Length; i++)
{
    s.WriteLine($"{speakerAmt[i]}\t{speakerID[i]}");
}

Это Интерполированные строки

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