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
-z
má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
-z
má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.ss
puede 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 ejemploss
SS
Ss
ss
. ¿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:
u
en mayúsculas,v
en minúsculas,m
en 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:
1
para mayúsculas,2
para mayúsculas y3
minú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 aInt
y 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 deInt
puntos de código Unicode que contienen los caracteres en la cadena.Inconvenientemente ,
Text.Unicode.UChar
es realmente largo, y no puedoimport StdEnv
porque las definiciones están enStdChar
conflicto 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