Учитывая немецкую строку и указание регистра (нижний / верхний / заголовок), сложите строку в этот регистр.
Характеристики
- Ввод будет состоять только из
a
-z
плюсäöüß-,.;:!?'"
в верхнем и / или нижнем регистре. - Целевой случай может быть принят за любые три уникальных значения (пожалуйста, укажите, какие они) согласованного типа; либо три символа, либо три числа, либо три бита. (Другие форматы в настоящее время не позволяют предотвратить «аутсорсинг» ответа на спецификацию случая. Прокомментируйте, если вы считаете, что дополнительный формат должен быть разрешен.)
- Заголовок означает все прописные буквы, кроме букв, следующих за буквой (буквы
a
-z
плюсäöüß
).
Gotchas
Когда
ß
должно быть в верхнем регистре, оно должно статьẞ
. Некоторые встроенные модули и библиотеки не делают этого.Когда
ß
должен быть titlecase, он должен статьSs
. Некоторые встроенные модули и библиотеки не делают этого.ss
может встречаться в тексте и никогда не должен быть преобразован вß
илиẞ
.
Примеры
Верхний регистр die Räder sagen "ßß ss" für dich, wegen des Öls!
являетсяDIE RÄDER SAGEN "ẞẞ SS" FÜR DICH, WEGEN DES ÖLS!
Нижний корпус die Räder sagen "ßß ss" für dich, wegen des Öls!
является die räder sagen "ßß ss" für dich, wegen des öls!
Название случай die Räder sagen "ßß ss" für dich, wegen des Öls!
являетсяDie Räder Sagen "Ssß Ss" Für Dich, Wegen Des Öls!
Ss
? Кроме того, отсутствует пример вводаss
SS
Ss
ss
. Можете ли вы сказать мне, почему это неясно?Ответы:
Japt ,
4240 байтСохранено 2 байта благодаря @Oliver
Уфф, это заняло довольно много усилий. Ввод - это строка для преобразования и один символ:
u
для верхнего регистра,v
для нижнего регистра,m
для регистра.Проверьте это онлайн!
источник
}0
?Python 3 , 92 байта
Попробуйте онлайн!
источник
05AB1E , 23 байта
Использует 0 = нижний, 1 = верхний, 2 = заголовок
Попробуйте онлайн!
источник
Желе , 50 байт
Попробуйте онлайн!
Полная программа.
Фу, это заняло много времени в гольф ...
Аргумент 1: строка (может потребоваться экранировать)
Аргумент 2:
1
для прописных букв,2
для заглавных букв ,3
для строчных.источник
Чистый ,
649279275274246 байтДа, это
12312294 байта импорта, что уже больше, чем любой другой ответ.Попробуйте онлайн!
Определяет функцию
@
, беря aInt
и aUString
и возвращая aUString
.Удобно,
UString
(способ очистки по умолчанию Юникода Clean по умолчанию), это просто псевдоним типа для[Int]
- который содержит списокInt
кодовых точек Юникода символов в строке.Неудобно ,
Text.Unicode.UChar
это действительно долго, и я не могу,import StdEnv
потому что определенияStdChar
конфликтуют с определениями вText.Unicode.UChar
(так как они не предназначены для совместного использования).Три значения: 0, 1 и 2 для верхнего, нижнего и заглавного регистра.
источник