Giter Club home page Giter Club logo

kanaria's Introduction

Kanaria

このライブラリは、ひらがな・カタカナ、半角・全角の相互変換や判別を始めとした機能を提供します。

Gradle CI

Description

変換処理は次のものをご用意しています。

  • 変換処理
    • ひらがな<->カタカナの変換
    • 半角<->全角の変換(ガ<->ガのように、濁音記号の結合も行います)
    • アルファベットの大文字<->小文字変換

判定処理は次のものをご用意しています。
ひらがなを除き、それぞれ半角のみ、全角のみ、半角・全角区別なしの物があります。

  • 判定処理
    • ひらがな
    • カタカナ
    • 数字
    • アルファベット
    • 記号

Demo / Usage

UCSStrに文字列を読み込ませ、変換先の設定を行い(この例だとカタカナに変換後、さらに半角に変換)、
Stringとして吐き出しているサンプルです。

let source = "吾輩は😺猫である😺";
let expect = "吾輩ハ😺猫デアル😺";

assert_eq!(expect, UCSStr::from_str(source).katakana().narrow().to_string());

また、上記のようにメソッドチェーンによる連続した変換設定はできませんが、
次のような形でも変換できます。

use kanaria::string::UCSStr;
use kanaria::string::ConvertType::Katakana;
use kanaria::utils::ConvertTarget;
use kanaria::string::ConvertType;

let target = vec!['あ', 'い', 'う', 'え', 'お'];
let result = UCSStr::convert(target.as_slice(), ConvertType::Katakana, ConvertTarget::ALL);

assert_eq!(result, vec!['ア', 'イ', 'ウ', 'エ', 'オ']);

この例は、半角文字を全角文字に変換しています。
この形式での変換は生ポインタ(*mut u16など)への書き込みを行うことができます。
連続での変換はせず、なおかつ速度を求める場合はこちらのほうが便利です。

ちなみに、他言語向けのラッパーライブラリも別途ご用意しています。
以下はC#の例です(VB.NETからも同じ要領で使用できるはずです)。

var katakana = "吾輩ハ😺猫デアル😺";
var hiragana = "吾輩は😺猫である😺";
Assert.AreEqual(katakana, UcsString.From(hiragana).Katakana().ToString());
Assert.AreEqual(hiragana, UcsString.From(katakana).Hiragana().ToString());

Installation

各言語で使用されるパッケージマネージャやビルドツール等からインストールできます。

Rust( https://crates.io/crates/kanaria

[dependencies]
kanaria = "0.2.0"

C#( https://www.nuget.org/packages/Kanaria.Net/

PM> Install-Package Kanaria.Net -Version 0.2.0

Maven( https://bintray.com/sam-osamu/maven/com.kanaria.kanaria_jvm

<dependency>
  <groupId>com.kanaria</groupId>
  <artifactId>kanaria_jvm</artifactId>
  <version>0.2.0</version>
  <type>pom</type>
</dependency>

Gradle( https://bintray.com/sam-osamu/maven/com.kanaria.kanaria_jvm

compile 'com.kanaria:kanaria_jvm:0.2.0'

API

次のページをご参照ください(これはRust向けのものです)。
https://docs.rs/kanaria/0.2.0/kanaria/

RustDocのようにサンプルを交えての記載まではできていませんが、
各言語のラッパー関数にも同様の関数コメントをご用意しています。

Licence

MIT

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.