特殊文字を10進数に変換するJavaライブラリがありますか?特殊文字をJavaの同等の10進数に変換
例: 入力: "©™®" 出力: "© ™ ®"(宇宙進相当せずに入力した場合&後のスペースは、唯一の問題のためであるが変換されます特殊文字に)
ありがとう!
特殊文字を10進数に変換するJavaライブラリがありますか?特殊文字をJavaの同等の10進数に変換
例: 入力: "©™®" 出力: "© ™ ®"(宇宙進相当せずに入力した場合&後のスペースは、唯一の問題のためであるが変換されます特殊文字に)
ありがとう!
How do I get the decimal value of a unicode character in Java?で説明されているように、文字の整数値を取得するだけで済みます。オラクルのJava doc
文字を1として
:charデータ型は、1つの16ビットUnicode文字です。 '\ u0000'(または0)の最小値と '\ uffff'(または 65535を含む)の最大値を持つ です。
文字が文字範囲内にあると仮定すると、文字列の各文字に相当する10進数を得ることができます。
String text = "©™®";
char[] cArr = text.toCharArray();
for (char c : cArr)
{
int value = c; // get the decimal equivalent of the character
String result = "& #" + value; // append to some format string
System.out.println(result);
}
出力:
& #169
& #8482
& #174
これは単にString.format()
を達成することができます。表現は単純に小数点の文字の値で、4文字にパディングされ、&#でラップされます。
唯一の難しい部分は、どの文字が「特別」であるかを決定することです。ここに私はいない数字ではなく、空白ではなく、アルファ...
StringBuilder output = new StringBuilder();
String input = "Foo bar ©™® baz";
for (char each : input.toCharArray()) {
if (Character.isAlphabetic(each) || Character.isDigit(each) || Character.isWhitespace(each)) {
output.append(each);
} else {
output.append(String.format("&#%04d;", (int) each));
}
}
System.out.println(output.toString());
[クエリ文字列パラメータのジャワのURLエンコーディング]の可能な重複(http://stackoverflow.com/questions/10786042/java-urlを想定しました-encoding-of-query-string-parameters) –
あなたが試したことを示してください。ありがとう – Omore
FYI、私はあなたが望むものの技術用語が "数値文字参照"だと信じています。 –