ケースフォールドドイツ語


9

ドイツ語の文字列とケースの表示(小文字/大文字/タイトル)が与えられた場合、文字列をそのケースに折りたたみます。

仕様書

  1. 入力のみで構成されますa- zプラスäöüß-,.;:!?'"大文字および/または小文字で。
  2. ターゲットケースは、一貫したタイプの3つの一意の値(それらを具体的に指定してください)として取得できます。3つの文字、3つの数字、または3つのビットパターン。(現在、他のフォーマットは、ケース仕様への回答の「アウトソーシング」を防ぐことを許可されていません。追加のフォーマットを許可する必要があると思われる場合はコメントしてください。)
  3. タイトルケースとは、文字の後に続く文字を除いてすべて大文字を意味します(文字はazプラスですäöüß)。

ガチャ

  1. ß大文字にする必要がある場合は、にする必要があります。一部のケースフォールディングビルトインとライブラリはこれを行いません。

  2. ßタイトルケースにする必要がある場合は、にする必要がありSsます。一部のケースフォールディングビルトインとライブラリはこれを行いません。

  3. 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!


2
の出力は何でしょうSsか?また、サンプルの入力にass
Rod

@Rod SS Ss ss。なぜそれが不明確なのか教えてもらえますか?
アダム2018年


Python関数を3つの一意の値にすることはできますか?(私の回答を参照)
HyperNeutrino 2018年

いいえ、それは、3つの一意の値が文字、数字、またはビットパターンのいずれかでなければならないことを指定することで、意図的に防止したものです。
アダム2018年

回答:


6

Japt42 40バイト

@Oliverのおかげで2バイト節約

r'ßQ=7838d)u mV,@W¦vW=X ?Xv :X¥Q?"Ss":Xu

ふう、かなり苦労しました。入力は、変換する文字列であり、u大文字、v小文字、mタイトルの大文字の1文字です。

オンラインでテストしてください!


あなたは必要}0ですか?
オリバー

@オリバーええ、そうでなければそれは...待って、多分そうではない...
ETHproductions



3

ゼリー、50バイト

⁽ñWỌ”ß;y⁸Œu
Ñ⁾SsÇ⁼?€1¦”ß
Œl
Çe€“Ġẹṇṣ‘ỌÇ;Øa¤Œg⁸ṁ⁹Ŀ€

オンラインでお試しください!

完全なプログラム。

ふew、これはゴルフにかなりの時間がかかりました...

引数1:文字列(エスケープが必要な場合があります)
引数2:1大文字、2タイトル、3小文字。


1

クリーン649 279 275 274 246バイト

はい、それは123 122 94バイトのインポートで、他のどの回答よりもすでに長くなっています。

from StdList import++,map,flatten
import StdLib,StdInt,StdBool,Text.Unicode,Text.Unicode.UChar
$ =fromInt
? =isAlpha
^ =toUpper
@0s=map^s
@1s=map toLower s
@2s=flatten(map(\[h:t]=if($223==h||h> $999)[$83,$115][^h]++ @1t)(groupBy(\a b= ?a== ?b)s))

オンラインでお試しください!

関数を定義し@Intおよびを取りUString、を返しますUString
便利なことに、UString(CleanのUnicodeのデフォルトの処理方法)は単なるタイプエイリアスです。[Int]これはInt、文字列内の文字のUnicodeコードポイントを含むリストです。
不便なことにText.Unicode.UCharは非常に長く、import StdEnv定義がの定義とStdChar競合しているため、私はできませんText.Unicode.UChar(一緒に使用することを意図していないため)。

3つの値は、大文字、小文字、およびタイトルの場合の0、1、および2です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.