com.yamicha.romanx2
クラス RomanX

java.lang.Object
  上位を拡張 com.yamicha.romanx2.RomanX
すべての実装されたインタフェース:
TypingX

public class RomanX
extends java.lang.Object
implements TypingX

クラス RomanX は、ローマ字入力をカバーするためのクラスです。
このクラスは、ローマ字入力とその正誤判定の他、ローマ字を日本語に変換したり、日本語をローマ字に変換する実用的なメソッドを備えています。
ひらがなからローマ字入力の例を表示するには、makeGuide() メソッドを使ってください。また、ローマ字を日本語にするには、static exchange メソッドが使えます。
メソッドのほとんどは、TypingX のメソッドをオーバーライドしたものです。詳しくはそちらのリファレンスをご覧ください。


コンストラクタの概要
RomanX(java.lang.String input)
          入力すべきテキストをひらがなで渡し、RomanX を構築します。
 
メソッドの概要
 void backDelete()
          文字をひらがなベースで1つ削除します。
 void backSpace()
          文字を入力ベースで1つ削除します。
static java.lang.String exchange(java.lang.String text)
          ローマ字をひらがなに変換する static メソッドです。
 java.lang.String getGuide()
          入力されている部分までは入力文字を表示し、それ以降の部分はガイド文字列を返します。
 int getGuidePositionKana()
          現在のひらがなガイド位置を返します。
 java.lang.String getHistory()
          すでにユーザーが入力した文字列を返します。
 java.lang.String getHistoryKana()
          ユーザーが入力した部分のうち、すでに確定した部分までのひらがなを返します。
 java.lang.String getInputFinishedHistory()
          すでにユーザーが入力した部分のうち、すでに確定した部分を返します。
 int getInputLengthKana()
          すでに入力した文字数を返します。
 int getLeftLengthKana()
          まだ入力されていない文字数を返します。
 java.lang.String getNowGuide()
          ローマ字などの入力中の部分を返します。
 java.lang.String getNowGuideKana()
          現在ユーザーが入力中のひらがなを返します。
 java.lang.String getTextKana()
          登録されたひらがな文字列を取得します。
 int inputString(java.lang.String str)
          文字列をインプットします。
 boolean inputText(char c)
          1文字をインプットします。
 java.lang.String makeGuide()
          登録されたひらがなをローマ字など任意の方法で変換したガイド文字列を返します。
 java.lang.String makeGuide(int pos)
          登録されたひらがなを、ローマ字など任意の方法で変換したガイド文字列を返します。
 int[] typeHistory()
          1確定ごとの入力ひらがな数のリストを返します。
 int[] typeLength()
          1確定ごとの入力文字数を返します。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

RomanX

public RomanX(java.lang.String input)
入力すべきテキストをひらがなで渡し、RomanX を構築します。
ひらがな以外の文字に関しては、半角英数の他、半角スペース、「ヴ」「ー」「ヵ」「ヶ」及び「!」「?」「、」「。」(これらの記号はいずれも全角のみ)がサポートされています。
これらに該当しない文字が入っている場合、動作は不定となります。

パラメータ:
input - 入力すべき文字をひらがなで指定する。
メソッドの詳細

getTextKana

public java.lang.String getTextKana()
インタフェース TypingX の記述:
登録されたひらがな文字列を取得します。

定義:
インタフェース TypingX 内の getTextKana
戻り値:
登録されたひらがな文字列。

getGuide

public java.lang.String getGuide()
インタフェース TypingX の記述:
入力されている部分までは入力文字を表示し、それ以降の部分はガイド文字列を返します。
例えばローマ字変換の場合、「てっきょう」を「text」まで入力していたら、既入力部分「text」とガイド「ukyou」を結合した結果を返します。
ローマ字入力など複数通りの入力があるものに関しては、ユーザーの入力が正解である限り、それをミスとして処理せず、既入力文字にあわせて返されるガイドを変えるようにしなければなりません。
例えば、「てっきょう」に関して「te」と入力された時点では「tekkyou」としても構いませんが、その次に「x」が来たら「textukyou」のようにガイドを修正するよう実装しなければなりません。

定義:
インタフェース TypingX 内の getGuide
戻り値:
既入力部分に関しては入力した文字、それ以降はガイド文字列。

getHistory

public java.lang.String getHistory()
インタフェース TypingX の記述:
すでにユーザーが入力した文字列を返します。
例えばローマ字の場合で、ユーザーが「hiragana」のうち「hirag」まで入力した場合、「hirag」が返されます。

定義:
インタフェース TypingX 内の getHistory
戻り値:
ユーザーが入力した文字

getLeftLengthKana

public int getLeftLengthKana()
インタフェース TypingX の記述:
まだ入力されていない文字数を返します。
文字数はひらがなベースです。つまり、「ひらがな」を「hirag」まで入力した場合、まだ残っているのは「がな」であるため、「2」が返されます。

定義:
インタフェース TypingX 内の getLeftLengthKana
戻り値:
ひらがな換算でまだ入力されていない文字数。入力途中の文字も未入力とみなす。

getInputLengthKana

public int getInputLengthKana()
インタフェース TypingX の記述:
すでに入力した文字数を返します。
文字数はひらがなベースです。つまり、「ひらがな」を「hirag」まで入力した場合、既入力は「ひら」であるため、「2」が返されます。

定義:
インタフェース TypingX 内の getInputLengthKana
戻り値:
ひらがな換算で既に入力された文字数。入力途中の文字は含まない。

getGuidePositionKana

public int getGuidePositionKana()
インタフェース TypingX の記述:
現在のひらがなガイド位置を返します。
文字数はひらがなベースです。つまり、「しぇりー」を「sy」まで入力しており、「sye」がガイドに出ている場合、、この部分は「しぇ」ですから、2 文字ということで「2」が返されます。
なお、文字「s」まで入力されているような場合、ガイドが「syeri-」なら「しぇ」がガイドされているため 2 を返し、「sixeri-」なら「し」がガイドされているため 1 というように、これはガイドの実装によっても変動します。

定義:
インタフェース TypingX 内の getGuidePositionKana
戻り値:
現在入力中の部分を示す値。

getNowGuide

public java.lang.String getNowGuide()
インタフェース TypingX の記述:
ローマ字などの入力中の部分を返します。
例えば「ひらがな」と入力する際、「hirag」まで入力されていたら、「が」の部分のガイドである「ga」を返します。「じゃば」のような場合で、「j」と入力された場合は、ライブラリの実装によって「ja」や「jya」を返します。

定義:
インタフェース TypingX 内の getNowGuide
戻り値:
現在入力中の部分のガイド。

getInputFinishedHistory

public java.lang.String getInputFinishedHistory()
インタフェース TypingX の記述:
すでにユーザーが入力した部分のうち、すでに確定した部分を返します。
例えばローマ字などでは、「hirag」と入力していたら「ひら」まで確定していますので「hira」を返します。
「ぜんりゃく」が「zenry」までの場合は、「ry」はまだ確定していないため、「ぜん」までを返します。

定義:
インタフェース TypingX 内の getInputFinishedHistory
戻り値:
入力済み文字のうち、入力が確定した部分。

getHistoryKana

public java.lang.String getHistoryKana()
インタフェース TypingX の記述:
ユーザーが入力した部分のうち、すでに確定した部分までのひらがなを返します。
これは要するに、ひらがなのうち、先頭から getInputLengthKana 文字を得るのと同じです。

定義:
インタフェース TypingX 内の getHistoryKana
戻り値:
すでに確定したひらがなを返す。

getNowGuideKana

public java.lang.String getNowGuideKana()
インタフェース TypingX の記述:
現在ユーザーが入力中のひらがなを返します。
例えば「ぜんりゃく」が「zenry」までの場合、「りゃ」を返します。
これは要するに、ひらがなのうち、getInputLengthKana から getInputLengthKana + getGuidePositionKana 文字までの部分を取得するのと同じです。

定義:
インタフェース TypingX 内の getNowGuideKana
戻り値:
ユーザーが入力中のひらがなを返す。

typeHistory

public int[] typeHistory()
インタフェース TypingX の記述:
1確定ごとの入力ひらがな数のリストを返します。
例えば「a」や「ka」、「nn」などは1文字、「sya」などは「しゃ」ですから2文字、「kkyo」などは「っきょ」ですから3文字です。
これを順に配列に格納した結果を返します。例えば「しゅっちょう」を「syuttyou」と打ったなら、「しゅ , っちょ , う」で{2 , 3 , 1}が返ります。

定義:
インタフェース TypingX 内の typeHistory
戻り値:
1確定ごとの入力ひらがな数。

typeLength

public int[] typeLength()
インタフェース TypingX の記述:
1確定ごとの入力文字数を返します。
例えば、「あ」でも「っちょ」でも1確定ですが、前者は 1(a)、後者は 4(ttyo) を返します。
これは typeHistory メソッドと組み合わせると便利です。両方の配列を取得し、現在の getGuide メソッドの文字数に達するまでループさせれば、1確定ごとの文字数と入力数が取得できます。
ユーザーが入力した文字、あるいはローマ字を、1確定ごとに区切って表示する場合などには、これらのメソッドを使う必要があります。

定義:
インタフェース TypingX 内の typeLength
戻り値:
1確定ごとの入力文字数。

inputString

public int inputString(java.lang.String str)
インタフェース TypingX の記述:
文字列をインプットします。
これは、例えばローマ字入力ならアルファベットの文字列になります。
このメソッドの適切なふるまいとして、この文字列に対して inputText メソッドを1文字ずつコールすることが挙げられます。
文字列の中に1つでも間違いが見つかったら、その時点で即座に登録処理(既インプット文字列への文字の登録、ガイドの更新など)を停止し、正解文字数を返すようにします。
つまり、文字列のすべてが正しくインプットされた場合には、文字長と同じ数値が返ります。
なお、入力すべき残り文字数よりも渡された文字数の方が長い場合には、入力すべき文字数の部分までに間違いがなければそこまでの文字数(つまり残文字数)、間違いがあれば通常通り正解文字数を返します。

定義:
インタフェース TypingX 内の inputString
パラメータ:
str - インプットする文字列。
戻り値:
渡された値のうち、正解だった文字数。全部正解なら文字長と同じ数値。

inputText

public boolean inputText(char c)
インタフェース TypingX の記述:
1文字をインプットします。
これは、例えばローマ字入力ならアルファベットになります。
このインタフェースを実装するクラスは、入力された文字に対する正否を判定し、正解なら true、間違いなら false を返します。
文字が続いていく関係上、判定は厳密でなければならず、誤りを見逃してはいけません。また、正解の可能性がある入力は、もれなく正解とみなさなければなりません。
例えばローマ字入力の場合、様々な入力が可能ですから、絶対にローマ字入力としてありえない文字が入力されない限り、false を返してはいけません。

定義:
インタフェース TypingX 内の inputText
パラメータ:
c - インプットする文字。
戻り値:
入力された文字が正解なら true、誤りなら false。

backSpace

public void backSpace()
インタフェース TypingX の記述:
文字を入力ベースで1つ削除します。
これは、例えばローマ字入力ならローマ字ベースでなければなりません。
具体的には、「hirag」の時点でこれが呼び出されたら「g」を削除して「hira」とし、ガイドなどを修正します。さらにこれが呼び出されたら、次は「hir」とし、ガイドなどを修正します。

定義:
インタフェース TypingX 内の backSpace

backDelete

public void backDelete()
インタフェース TypingX の記述:
文字をひらがなベースで1つ削除します。現在入力中の文字があるなら、その文字に当たるものを全部削除します。
具体的には、「hirag」の時点でこれが呼び出されたら、現在入力部分の「g」を削除して「hira」とし、ガイドなどを修正します。
さらにこれが呼び出されたら、次は「ら」に当たる部分を削除、つまり「hi」とし、ガイドなどを修正します。
「てっきょう」で「tekkyo」まで入力されている場合にコールされたら、「っきょ」が1ブロックとして入力されていますので、「っきょ」を全部削除し、「て」に修正します。

定義:
インタフェース TypingX 内の backDelete

makeGuide

public java.lang.String makeGuide()
インタフェース TypingX の記述:
登録されたひらがなをローマ字など任意の方法で変換したガイド文字列を返します。

定義:
インタフェース TypingX 内の makeGuide
戻り値:
入力のガイド文字列。ただし、ガイドはあくまでユーザーへの利便のためのものとして、ローマ字など複数の入力方法がある入力の場合、ガイド以外の正解も受け入れること。

makeGuide

public java.lang.String makeGuide(int pos)
インタフェース TypingX の記述:
登録されたひらがなを、ローマ字など任意の方法で変換したガイド文字列を返します。
例えばローマ字変換の場合、「ひらがな」を「hiragana」などと変換して返します。
ただし、引数以後の文字に関してのみガイド変換を行います。例えば「ひらがな」を変換する際、「2」が引数として渡されたら、2文字を飛ばして「がな」のみを変換して結果を返します。
ローマ字の場合、「さっか」と入力すべき時に「1」が引数として渡されたら、「っか」だけが残りますので、「xtuka」のように変換しなければなりません。

定義:
インタフェース TypingX 内の makeGuide
パラメータ:
pos - ひらがなベースで、この文字数目の部分からガイドを生成する。
戻り値:
入力のガイド文字列。ただし、ガイドはあくまでユーザーへの利便のためのものとして、ローマ字など複数の入力方法がある入力の場合、ガイド以外の正解も受け入れること。

exchange

public static java.lang.String exchange(java.lang.String text)
ローマ字をひらがなに変換する static メソッドです。
ひらがなに変換できなかった文字はそのまま返されます。これは、多くの入力システムのローマ字入力と同じです。

パラメータ:
text - ひらがなに変換するローマ字文字列。
戻り値:
変換後の文字列。