• ベストアンサー

javaでIMEの機能を使いたいのですが

"hajimemasite"という文字列を引数として "はじめまして"という文字列を返す関数はあるのでしょうか? また、"はじめまして"から"初めまして"や"始めまして"などを返す関数はあるのでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

Javaのインプットメソッド関連のAPIは java.awt.im および java.awt.im.spi にありますが、ご質問の内容のようなインターフェイスは見当たりませんね……。 "hajimemasite"から"はじめまして"を求める関数を自力で実装するのは、手間は多少かかるでしょうが難しくはないと思います。ローマ字の表を用意して参照するだけですから。 変換候補を求める関数は Java Native Interface でWindowsのAPIを呼び出せばまったく不可能ともいえませんが……非常に難しいと思いますしその場合Windowsにも依存します。自力で実装するにも大掛かりな日本語語彙データが必要でしょう。参考URLはWindowsのIME APIの解説です。ご参考までに。

参考URL:
http://www7a.biglobe.ne.jp/~tsuneoka/win32tech/7.html
全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • PED02744
  • ベストアンサー率40% (157/390)
回答No.1

聞いたことがありません。 JAVAは機種依存・OS依存しないことが前提なので、機種やOSに依存するどころか、IMEシステムにさえ依存しそうな内容は実装されないとおもいます。 そもそも[hajimemasite]を[はじめまして]に変換するようなものは、Windowsにも存在しないと思います。 [hajimemasite]なら[はじめまして]に一意に決まるからできそうですが、 [halitoito]だとIMEシステム設定によっては[はりといと]か[はぃといと]か 確定しないので、関数として成り立たないからです。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • javaについて

    ArrayListに格納した16進数(文字列をハッシュ値に変換させた)を引数として文字列照合を行うプログラムを作っています。今までは一文字ずつの照合を行っていたのですがリストごとに照合をしたいです。リストは作ったのですが、引数として入力する際にtoString()を使用してしまうので一文字ずつの比較になってしまいます。またリストの長さを渡したいのに渡された関数の中で.length()の処理を行うのでリストの長さではなく文字の数になってしまいます。どうすればよいのでしょうか…

  • セルの計算機能を持つ関数、OCX

    AND OR () < > 等が含まれたの計算式を自動で計算してくれる関数や、コンポーネントを探しています。 実際にはセルを表示したりはせず計算式を引数に渡して結果だけ返ってくればOKです。 計算式は文字列で渡し255文字までの計算式が使えるものが良いです。 もし情報等ございましたらご教授頂けませんでしょうか? よろしくお願いします。

  • printf関数の引数は文字例と決まっているからです。

    printf関数は文字列しか引数として受け取りません。 printf("文字列"); では数値を引数にしたらどうでしょう? #include <stdio.h> #main () {     printf(1);     return 0; } これはコンパイルエラーになります。printf関数の引数は文字列と決まっているからです。 この文章について質問です。 Q.なぜ上の「文字数」はダブルクォーテーションで囲まれているのに、下の「1」にダブルクォーテーションはないのでしょうか? Q.文書を見る限り、Cでは文字列と数値は区別されているように見えますが、なぜでしょうか?

  • VBA&c++のデータ受け渡り

    excel VBAを使用し、セルに入っているipアドレスを文字列をc++で作成したDLLファイル内にある関数に引数として渡したいのですが、関数内で確認すると旨く渡っていません。(正しく表示されない) 何か特別な方法やアドバイスが有れば宜しくお願いいたします。 現在の状況は文字列をstringに入れそのアドレスを引数としています。DLL内関数の引数の型はcharのアドレスです。

  • 文字列の置換をCStringで(C++)

    あいうえお(5)かきく(8)けこ という文字列の ”(数字)”を別の文字列”さささささ” に変えたいんです。 (つまり、正解は あいうえおさささささかきくさささささけこ) replace関数を使ってみようと思ったのですが、 string型のものならば、 (開始場所、変えたい文字数、変えたい文字列) を引数にすればいいのはわかるのですが、 これを、CStringでやりたいのです。 ヘルプを見てもCStringのreplace関数は (変更前の文字列、変更後の文字列)を引数にする、 となっていて、私のように(数字)というアバウトな場合にはむかないのかとも思いますが、他のプログラムとの関係で、CString型がいいのです。 ややこしくてすいませんが、アドバイスお願いいたします。

  • 可変長引数関数の引数の文字列サイズを取得したい

    以下のような可変長の文字列を受け取れる関数があったとします。 ...の部分で引数を受け取ることが可能ですが、この場合引数の文字列サイズを 知ることは可能なのでしょうか? 関数を呼び出してみて例を挙げるとするなら、  GetArgs( "%s", "あいうえお" ); この「あいうえお」の部分の文字数をGetArgs内で知りたいのです。 void GetArgs( char * FormatString, ... ) {   va_list VaList;   va_start( VaList, FormatString );   // ここでFormatStringの引数の文字列サイズを取得したい   va_end( VaList ); }

  • このJavaの問題につきまして

    現在Javaの勉強をしているものです。 この問題は私が3時間ほど考えてみたのですがどうしてもわからなくて今回はみなさんに質問をさせていただきました。  問題文の後に私なりに考えたプログラムをまだ途中ではありますが載せておきました。その以降の部分に関しましてどうか答えを教えてください。また途中まで載せている私が作成したプログラムに関しましてもおかし点がありましたらどんどんご指摘なさって結構です。 問題  検索文字列と検索文字をカンマで区切り引数として画面から渡し、メインメソッドからサブメソッドにその引数をを渡し、サブメソッドで検索文字列に検索文字があれば何番目にその文字があるかを返し、該当文字がない場合は0を返します。 メインメソッドで何番目がその文字であるかを出力する処理ex.)  引数:Really a (メニューバーの「実行」をクリックして、中にある「実行」をクリっクし、そこの「引数」という項目に「Really a」と入力する」  出力結果:文字列「Really」のaは3番目にあります。 public class Moji{ public static void main(String[] args){ String str = args[0]; System.out.println(kensaku(str)); } static String kensaku(String str){ StringTokenizer A = new StringTokenizer(str,","); //↓の2行はあまり自信がありません・・・ while(A.hasMoreTokens()); System.out.println(A.nextToken()); //↓ここからわかりません } どうかよろしくお願いします

  • Visual C++の簡単なプログラムについて

    Visual C++で以下のようなプログラムまたは関数を作りたいのでアルゴリズムもしくはヒントを教えてください。 (1) 入力された文字列の文字数を算出するプログラム (2) 『abc』→『abcabc』のように引数として受け取った文字列を2回繰り返した文字列に変換する関数

  • エクセルで複数列・行の中にある文字の有無を探す関数

    エクセルで複数列×行の中に、指定した文字(引数)があるか探す関数を教えてください。 また、引数には曖昧な「*」が文字のお尻に追加されているものも含まれます。 <例:html* VLOOKUPやMATCHは、1列しか引数として見ないため、うまくいきません。 COUNTIFでは、完全一致はうまくいきますが、「*」が含まれるとうまくいきません。 よろしくお願いいたします。

  • excelで日付数値を日付文字列に変換する

    =datevalue("2023/1/1") とすると数値44927となります。 それでは数値44927を引数として、文字列"2023/1/1"を取得する関数? 同様に=timevalue("15:0:0") は0.625です。逆に"15:0:0"を得る関数?