この Java/Kotlin ライブラリは、異なるテキスト ケース間で文字列を変換するための直感的な API を提供します。最も一般的なテキストのケースに対する幅広いサポートが組み込まれています。さらに、このライブラリは、新しいカスタム テキスト ケースを使用して簡単に拡張できるように設計されており、柔軟性と適応性が高くなります。
このリポジトリでは、変更はそれほど頻繁に発生せず、ライブラリが更新されることはほとんどありません。ただし、これは放棄されたプロジェクトではありません。コードは比較的単純でテスト カバレッジが良好であるため、何も変更する必要はほとんどありません。
このライブラリは Maven Central で入手できます。これは、メイン ライブラリと、Kotlin の拡張機能を提供するオプションのライブラリで構成されます。
// Main dependency
implementation ' dev.turingcomplete:test-case-converter:2.0.0 ' // Groovy build script
implementation( " dev.turingcomplete:test-case-converter:2.0.0 " ) // Kotlin build script
// Optional: Kotlin extensions
implementation ' dev.turingcomplete:test-case-converter-kotlin-extension:2.0.0 ' // Groovy build script
implementation( " dev.turingcomplete:test-case-converter-kotlin-extension:2.0.0 " ) // Kotlin build script
<!-- Main dependency -->
< dependency >
< groupId >dev.turingcomplete</ groupId >
< artifactId >test-case-converter</ artifactId >
< version >2.0.0</ version >
</ dependency >
<!-- Optional: Kotlin extensions -->
< dependency >
< groupId >dev.turingcomplete</ groupId >
< artifactId >test-case-converter-kotlin-extension</ artifactId >
< version >2.0.0</ version >
</ dependency >
このライブラリの基盤は 2 つのインターフェイスです。
dev.turingcomplete.textcaseconverter.TextCase
によって表されます。これはメタ情報 ( title()
やexample()
など) を提供し、いくつかのバリエーションのconvert*()
メソッドを通じて、テキストをそのテキストケースに変換したり、そのテキストケースからテキストを変換したりする機能を提供します。dev.turingcomplete.textcaseconverter.WordsSplitter
は、テキストを単語のリストに分割するユーティリティを定義します。一般に、テキストケースコンバータは生のテキストではなく単語のリストに対して機能することを理解する必要があります。これは、各テキストケースがテキストの単語を異なる方法で組み立てているためです。ただし、生のテキストでは、 WordsSplitter
追加しない限り、単語がどこで始まりどこで終わるのかを機械で認識することはできません。たとえば、 foo bar baz
では開始/終了はスペースによって定義されますが、 fooBarBaz
では大文字と小文字の変更によって定義されます。
このライブラリには、 StandardTextCases
クラスとStandardWordsSplitters
クラスに両方のインターフェイスの組み込み実装がいくつかあり、最も一般的なテキストのケースとテキストを単語に分割する方法をカバーしています (次の章を参照)。
クラスdev.turingcomplete.textcaseconverter.StandardTextCases
には、最も一般的なテキスト ケースの静的インスタンスが含まれています。
名前 | 例 | 述べる |
---|---|---|
厳密なキャメルケース | キャメルSQLケース | 各大文字は新しい単語を定義します。 |
ソフトキャメルケース | キャメルSqlCase | 大文字は、前の文字が大文字でない場合にのみ、新しい単語を定義します。 |
ケバブケース | ケバブケース | |
スネークケース | ヘビの場合 | |
スクリーミングスネークケース | SCREAMING_SNAKE_CASE | |
トレインケース | トレインケース | |
コボルケース | COBOLケース | |
パスカル・ケース | パスカルケース | |
パスカル・スネーク事件 | パスカル_スネーク_ケース | 最初の文字は常に大文字です。 |
キャメルスネークケース | キャメル_スネーク_ケース | ソフトキャメルケースを採用。最初の文字は常に小文字です。 |
小文字 | 小文字 | |
大文字 | 大文字 | |
逆さまのケース | 逆さまのケース | 各文字の大文字と小文字が反転します。 |
交互ケース | 代替ケース | 後続の各文字は、前の文字の大文字と小文字が逆になります。代替は最初の文字の反対から始まります。 |
次の例は、組み込みの Camel Case 実装に対するTextCase
インターフェイスのconvert*()
メソッドの使用法を示しています。
// All will return `fooBarBaz`
// Array of words
StandardTextCases . CAMEL_CASE .convert( " foo " , " bar " , " baz " )
// List of words
StandardTextCases . CAMEL_CASE .convert( List .of( " foo " , " bar " , " baz " ))
// Given a raw text in which the start/end of a word is defined by a space
StandardTextCases . CAMEL_CASE .convert( " Foo bar baz " , StandardWordsSplitters . SPACE )
// Given a raw text that is in Cobol Case and convert it into Camel Case
StandardTextCases . CAMEL_CASE .convertForm( StandardTextCases . COBOL_CASE , " FOO-BAR-BAZ " )
// Identical to the previous one, only the other way around
StandardTextCases . COBOL_CASE .convertTo( StandardTextCases . CAMEL_CASE , " FOO-BAR-BAZ " )
クラスdev.turingcomplete.textcaseconverter.StandardWordsSplitters
は、テキストを単語に分割する最も一般的な方法の静的インスタンスを提供します。
)、(複数の可能性がある)スペース文字の周囲でテキストを分割します。空白の単語は省略されます。-
) で指定します。空白の単語は省略されます。_
) によって指定されます。空白の単語は省略されます。fooBar
foo
とBar
2 つの単語になり、 SQL
S
、 Q
、 L
の 3 つの単語になります。fooBar
foo
とBar
2 つの単語であり、 SQL
1 つの単語になります。各TextCase
TextCase#wordsSplitter
を通じてWordsSplitter
提供し、そのテキスト ケースで指定されたテキストを個々の単語に分割するために使用できることに注意してください。これは、たとえば、 WordsSplitter
を明示的に指定せずにテキストケースを別のテキストケースに変換する場合などに、内部的に使用されます。
ライブラリtest-case-converter-kotlin-extension
を追加すると、いくつかの Kotlin 拡張機能が提供され、Kotlin コードでこのライブラリを使用しやすくなります。これらの追加機能は、次の例で確認できます。
// Convert the given raw text into Snake Case. Both will return `foo_bar`.
" foo bar " .toTextCase( SNAKE_CASE )
" fooBar " .toTextCase( SNAKE_CASE , UPPER_CASE )
// Will create a `WordsSplitter` that splits words by the delimiter `//`.
" // " .toWordsSplitter()
一部の組み込みのテキスト ケースと単語スプリッターはString#toLowerCase()
またはString#toUpperCase()
を使用します。どちらのメソッドの出力もロケールに依存します。このライブラリ内のこれらのメソッドへのすべての呼び出しでは、 dev.turingcomplete.textcaseconverter.Configuration
クラスの静的フィールドに設定されたLocale
が使用されます。デフォルトではLocale.ROOT
が使用されます。
著作権 (c) 2023 マルセル・クリーマンネル
Apache License バージョン 2.0 (「ライセンス」) に基づいてライセンスされています。ライセンスに準拠する場合を除き、このファイルを使用することはできません。
ライセンスのコピーは https://www.apache.org/licenses/LICENSE-2.0 で入手できます。
適用される法律で義務付けられている場合または書面による同意がない限り、ライセンスに基づいて配布されるソフトウェアは、明示または黙示を問わず、いかなる種類の保証や条件もなく、「現状のまま」で配布されます。ライセンスに基づく許可と制限を規定する特定の言語については、ライセンスを参照してください。