Dada una cadena alemana y una indicación de un caso (inferior / superior / título), doble la cadena a ese caso.
Especificaciones
- La entrada consistirá solo en
a-zmásäöüß-,.;:!?'"en mayúsculas y / o minúsculas. - El caso objetivo puede tomarse como tres valores únicos (especifique cuáles son) de un tipo consistente; ya sea tres caracteres, o tres números, o patrones de tres bits. (Actualmente, otros formatos no están permitidos para evitar "externalizar" la respuesta a la especificación del caso. Comente si cree que debería permitirse un formato adicional).
- Titlecase significa todo en mayúscula excepto las letras que siguen a una letra (las letras son
a-zmásäöüß).
Gotchas
Cuando
ßnecesita ser mayúscula, debe convertirseẞ. Algunas bibliotecas y empotrados plegables no hacen esto.Cuando
ßnecesita ser un título, debe convertirseSs. Algunas bibliotecas y empotrados plegables no hacen esto.sspuede aparecer en el texto y nunca se debe convertir aßoẞ.
Ejemplos
Mayúscula die Räder sagen "ßß ss" für dich, wegen des Öls!
esDIE RÄDER SAGEN "ẞẞ SS" FÜR DICH, WEGEN DES ÖLS!
Minúscula die Räder sagen "ßß ss" für dich, wegen des Öls!
es die räder sagen "ßß ss" für dich, wegen des öls!
El caso del título die Räder sagen "ßß ss" für dich, wegen des Öls!
esDie Räder Sagen "Ssß Ss" Für Dich, Wegen Des Öls!

Ss? Además, falta la entrada de ejemplossSSSsss. ¿Me puede decir por qué eso no está claro?Respuestas:
Japt ,
4240 bytesGuardado 2 bytes gracias a @Oliver
Menos mal, eso requirió bastante esfuerzo. La entrada es la cadena a convertir y un solo carácter:
uen mayúsculas,ven minúsculas,men mayúsculas y minúsculas .¡Pruébelo en línea!
fuente
}0?Python 3 , 92 bytes
Pruébalo en línea!
fuente
05AB1E , 23 bytes
Utiliza 0 = inferior, 1 = superior, 2 = título
Pruébalo en línea!
fuente
Jalea , 50 bytes
Pruébalo en línea!
Programa completo
Uf, esto tomó mucho tiempo para jugar golf ...
Argumento 1: Cadena (puede ser necesario escapar)
Argumento 2:
1para mayúsculas,2para mayúsculas y3minúsculas.fuente
Limpias ,
649279275274246 bytesSí, eso es
12312294 bytes de importación, que ya es más largo que cualquier otra respuesta.Pruébalo en línea!
Define la función
@, tomando aInty aUString, y devolviendo aUString.Convenientemente,
UString(la forma predeterminada de Clean de manejar Unicode), es solo un alias de tipo para[Int], que es una lista deIntpuntos de código Unicode que contienen los caracteres en la cadena.Inconvenientemente ,
Text.Unicode.UChares realmente largo, y no puedoimport StdEnvporque las definiciones están enStdCharconflicto con las definiciones enText.Unicode.UChar(ya que no están destinadas a usarse juntas).Los tres valores son 0, 1 y 2 para mayúsculas, minúsculas y título.
fuente