4

私は基本的に英語をテキストスピーチに変換するコードを持っています。

現在、このString.split()メソッドを使用\\\Wし、区切り文字として使用して、単語以外の文字をすべて削除しています。

現状では、これが私が得たものです。

input:I hate text speak!:)
output:I h8 txt spk

とにかく区切り文字をなくさないでください。

編集:これが解析を行うメソッドです。現状では、区切り文字がスペースに置き換えられているため、少なくともまだ読み取り可能です...

public static String engToText(String text){
                    text=text.toLowerCase();
                    String translated=" ";


                    //breaks string into tokens
                    String[] tokens = text.split("\\W");

                    for(int x=0;x<tokens.length;x++){
                        if(wordMapEng.containsKey(tokens[x])){
                            translated+=" "+wordMapEng.get(tokens[x]);
                        }else{
                            translated+=" " + tokens[x];
                        }
                    }


                    return translated.trim();
                }
4

1 に答える 1

6

あなたはStringTokenizer持っているクラスを使用することができます

StringTokenizer(String str, String delim, boolean returnDelims) 

トークンを反復処理すると、デリメータも返されるコンストラクタ。

于 2012-10-25T14:02:47.403 に答える