Как получить зависимый от платформы символ новой строки?

Выполняет то же самое задание, что и HeaderNameValueEncode (), но также кодирует символы%, поэтому заголовок может быть надежно декодирован позже.

static string EncodeHeaderValue(string value)
{
    return Regex.Replace(value, @"[\u0000-\u0008\u000a-\u001f%\u007f]", (m) => "%"+((int)m.Value[0]).ToString("x2"));
}

static string DecodeHeaderValue(string encoded)
{
    return Regex.Replace(encoded, @"%([0-9a-f]{2})", (m) => new String((char)Convert.ToInt32(m.Groups[1].Value, 16), 1), RegexOptions.IgnoreCase);
}
521
задан Rafael Winterhalter 23 September 2015 в 14:06
поделиться

3 ответа

В дополнение к line.separator свойству при использовании java 1.5 или позже и String.format (или другой форматирование методы) можно использовать %n как в

Calendar c = ...;
String s = String.format("Duke's Birthday: %1$tm %1$te,%1$tY%n", c); 
//Note `%n` at end of line                                  ^^

String s2 = String.format("Use %%n as a platform independent newline.%n"); 
//         %% becomes %        ^^
//                                        and `%n` becomes newline   ^^

Посмотрите Java 1.8 API для Средства форматирования для получения дополнительной информации.

355
ответ дан Brian McCutchon 23 September 2015 в 14:06
поделиться

При попытке записать новую строку в файл, Вы могли бы просто использовать BufferedWriter новая строка () метод.

43
ответ дан Michael Myers 23 September 2015 в 14:06
поделиться

Можно использовать

System.getProperty("line.separator");

для получения разделителя

строки
644
ответ дан Keppil 23 September 2015 в 14:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: