日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

将unicode转换成汉字

發布時間:2023/12/29 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 将unicode转换成汉字 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

將unicode轉換成漢字的引申

unicode轉換成漢字方法:
public static String UnicodeToString(String str) { Pattern pattern = Pattern.compile("(\\\\u(\\p{XDigit}{4}))"); Matcher matcher = pattern.matcher(str); char ch; while (matcher.find()) { ch = (char) Integer.parseInt(matcher.group(2), 16); str = str.replace(matcher.group(1), ch + ""); } return str; }
上述方法利用pattern類和matcher類實現轉換,但是在eclipse中調試該方法后發現,標準16進制的unicode組成的String串看到的就是中文,其他形式可以變通使用。這里見到了pattern類,簡單學習一下。
pattern類
public final class Pattern
extends Object implements Serializable 正則表達式的編譯表示形式。

指定為字符串的正則表達式必須首先被編譯為此類的實例。然后,可將得到的模式用于創建 Matcher 對象,依照正則表達式,該對象可以與任意字符序列匹配。執行匹配所涉及的所有狀態都駐留在匹配器中,所以多個匹配器可以共享同一模式。

因此,典型的調用順序是

Pattern p = Pattern.compile("a*b");
Matcher m = p.
matcher("aaaaab");
? boolean b = m.
matches();

在僅使用一次正則表達式時,可以方便地通過此類定義 matches 方法。此方法編譯表達式并在單個調用中將輸入序列與其匹配。語句

boolean b = Pattern.matches("a*b", "aaaaab"); 等效于上面的三個語句,盡管對于重復的匹配而言它效率不高,因為它不允許重用已編譯的模式。

此類的實例是不可變的,可供多個并發線程安全使用。Matcher 類的實例用于此目的則不安全。

正則表達式的構造摘要

的非捕獲組 構造匹配字符字符類預定義字符類POSIX 字符類(僅 US-ASCII)java.lang.Character 類(簡單的 java 字符類型)Unicode 塊和類別的類邊界匹配器Greedy 數量詞Reluctant 數量詞Possessive 數量詞Logical 運算符Back 引用引用特殊構造(非捕獲)
x字符 x
\\反斜線字符
\0n帶有八進制值 0 的字符 n (0 <= n <= 7)
\0nn帶有八進制值 0 的字符 nn (0 <= n <= 7)
\0mnn帶有八進制值 0 的字符 mnn(0 <= m <= 3、0 <= n <= 7)
\xhh帶有十六進制值 0x 的字符 hh
\uhhhh帶有十六進制值 0x 的字符 hhhh
\t制表符 ('\u0009')
\n新行(換行)符 ('\u000A')
\r回車符 ('\u000D')
\f換頁符 ('\u000C')
\a報警 (bell) 符 ('\u0007')
\e轉義符 ('\u001B')
\cx對應于 x 的控制符
[abc]a、b 或 c(簡單類)
[^abc]任何字符,除了 a、b 或 c(否定)
[a-zA-Z]a 到 z 或 A 到 Z,兩頭的字母包括在內(范圍)
[a-d[m-p]]a 到 d 或 m 到 p:[a-dm-p](并集)
[a-z&&[def]]d、e 或 f(交集)
[a-z&&[^bc]]a 到 z,除了 b 和 c:[ad-z](減去)
[a-z&&[^m-p]]a 到 z,而非 m 到 p:[a-lq-z](減去)
.任何字符(與行結束符可能匹配也可能不匹配)
\d數字:[0-9]
\D非數字: [^0-9]
\s空白字符:[ \t\n\x0B\f\r]
\S非空白字符:[^\s]
\w單詞字符:[a-zA-Z_0-9]
\W非單詞字符:[^\w]
\p{Lower}小寫字母字符:[a-z]
\p{Upper}大寫字母字符:[A-Z]
\p{ASCII}所有 ASCII:[\x00-\x7F]
\p{Alpha}字母字符:[\p{Lower}\p{Upper}]
\p{Digit}十進制數字:[0-9]
\p{Alnum}字母數字字符:[\p{Alpha}\p{Digit}]
\p{Punct}標點符號:!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
\p{Graph}可見字符:[\p{Alnum}\p{Punct}]
\p{Print}可打印字符:[\p{Graph}\x20]
\p{Blank}空格或制表符:[ \t]
\p{Cntrl}控制字符:[\x00-\x1F\x7F]
\p{XDigit}十六進制數字:[0-9a-fA-F]
\p{Space}空白字符:[ \t\n\x0B\f\r]
\p{javaLowerCase}等效于 java.lang.Character.isLowerCase()
\p{javaUpperCase}等效于 java.lang.Character.isUpperCase()
\p{javaWhitespace}等效于 java.lang.Character.isWhitespace()
\p{javaMirrored}等效于 java.lang.Character.isMirrored()
\p{InGreek}Greek 塊(簡單塊)中的字符
\p{Lu}大寫字母(簡單類別)
\p{Sc}貨幣符號
\P{InGreek}所有字符,Greek 塊中的除外(否定)
[\p{L}&&[^\p{Lu}]] 所有字母,大寫字母除外(減去)
^行的開頭
$行的結尾
\b單詞邊界
\B非單詞邊界
\A輸入的開頭
\G上一個匹配的結尾
\Z輸入的結尾,僅用于最后的結束符(如果有的話)
\z輸入的結尾
X?X,一次或一次也沒有
X*X,零次或多次
X+X,一次或多次
X{n}X,恰好 n 次
X{n,}X,至少 n 次
X{n,m}X,至少 n 次,但是不超過 m 次
X??X,一次或一次也沒有
X*?X,零次或多次
X+?X,一次或多次
X{n}?X,恰好 n 次
X{n,}?X,至少 n 次
X{n,m}?X,至少 n 次,但是不超過 m 次
X?+X,一次或一次也沒有
X*+X,零次或多次
X++X,一次或多次
X{n}+X,恰好 n 次
X{n,}+X,至少 n 次
X{n,m}+X,至少 n 次,但是不超過 m 次
XYX 后跟 Y
X|YX 或 Y
(X)X,作為捕獲組
\n任何匹配的 nth 捕獲組
\Nothing,但是引用以下字符
\QNothing,但是引用所有字符,直到 \E
\ENothing,但是結束從 \Q 開始的引用
(?:X)X,作為非捕獲組
(?idmsux-idmsux) Nothing,但是將匹配標志i d m s u x on - off
(?idmsux-idmsux:X) X,作為帶有給定標志 i d m s u x on - off
(?=X)X,通過零寬度的正 lookahead
(?!X)X,通過零寬度的負 lookahead
(?<=X)X,通過零寬度的正 lookbehind
(?<!X)X,通過零寬度的負 lookbehind
(?>X)X,作為獨立的非捕獲組

總結

以上是生活随笔為你收集整理的将unicode转换成汉字的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。