2016-03-31 17 views
-3

にテキストスマイリーのUnicodeを見つけるか;)、私はこれらの文字のUnicodeを取得したい:)、私はユニコードの見つけることができますどのように)どのように私はこんにちは:)のような文字列を持っていますアンドロイド

これらの文字。

ここに誰かが考えている場合は、コードを投稿してください。

ありがとうございました。

+0

変換しようとしています:)またはあなたは:)と;)のためのUnicode対応を求めていますか? –

+0

はい、私はユニコードに変換したいので、私はそれらを絵文字で変換できます。 –

答えて

0

は、変換する:) HashMapを作成して、スマイリーコードを移入するだろうし、この

private static String escapeNonAscii(String str) { 

StringBuilder mStr = new StringBuilder(); 
for(int i=0; i<str.length(); i++) { 
int cp = Character.codePointAt(str, i); 
int charCount = Character.charCount(cp); 
if (charCount > 1) { 
    i += charCount - 1; // 2. 
    if (i >= str.length()) { 
    throw new IllegalArgumentException("truncated unexpectedly"); 
    } 
} 

if (cp < 128) { 
    mStr .appendCodePoint(cp); 
} else { 
    mStr .append(String.format("\\u%x", cp)); 
} 
} 
return mStr.toString(); 
} 
+0

この関数を文字列:)または;を渡して呼び出すと、同じ文字列が返されます。私はこれらの文字列のユニコードを見つけることができません。 –

0

一つの方法を試してみてください。次に、キーのすべての値をそれぞれの値に置き換えるだけです。例:

HashMap<String, String> map = new HashMap<String, String>(); 
map.put(":\\)", "\uD83D\uDE42");//don't forget to escape the parenthesis character in :) 
map.put(":\\(", "\uD83D\uDE41"); 
map.put(":D", "\uD83D\uDE00"); 
... 
String s = "Hello World :)"; 
Set<String> set = map.keySet(); 
for (String s1 : set) { 
    s = s.replaceAll(s1, map.get(s1)); 
} 

ここにはUnicode emoticonsのリストがあります。

+0

スマイリーテキストをマップに保存したくないので、それを動的にチェックしてからUnicodeで変更したいと思っています。どうすればいいのですか、誰かがそれをやる方法を知っていれば、サンプルコードを投稿してください。 –

+0

':'と ')'は別々のユニコード文字で、1つのユニコード文字ですか?これは 'ab'を 'c'に置き換えることと変わりありません。さらに、異なる文字の出現を置き換えたいので、実際にはそのためのルックアップテーブルが必要です。そうでない場合は非常に長いチェーンです。もちろん、あなたのためにそれを行うライブラリを探すことができますが、ライブラリ自体は、文字を置き換えるために同様の何かを使用します。 –

+0

さて、テキストスマイリーをハッシュマップに追加するには、テキストをスマイリーに追加して、ハッシュマップにユニコードを追加してみてください。 しかし、どのようにテキストのスマイリーの対応するユニコードを見つけることができます。 例:これは知っています:)テキストスマイリーユニコードは "\ uD83D \ uDE42" 他のテキストスマイリーに対応するユニコードはどのようにして見つけられますか? –

関連する問題