第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將Unicode轉(zhuǎn)義序列轉(zhuǎn)換為.NET字符串中的Unicode字符?

如何將Unicode轉(zhuǎn)義序列轉(zhuǎn)換為.NET字符串中的Unicode字符?

交互式愛情 2019-10-19 15:00:52
假設您已將文本文件加載到字符串中,并且想要將所有Unicode轉(zhuǎn)義轉(zhuǎn)換為字符串內(nèi)的實際Unicode字符。例:“以下是Unicode'\ u2320'中整數(shù)字符的上半部分,而這是下劃線'\ U2321'。
查看完整描述

3 回答

?
回首憶惘然

TA貢獻1847條經(jīng)驗 獲得超11個贊

答案很簡單,并且適用于至少數(shù)千個字符的字符串。


范例1:


Regex  rx = new Regex( @"\\[uU]([0-9A-F]{4})" );

result = rx.Replace( result, match => ((char) Int32.Parse(match.Value.Substring(2), NumberStyles.HexNumber)).ToString() );

范例2:


Regex  rx = new Regex( @"\\[uU]([0-9A-F]{4})" );

result = rx.Replace( result, delegate (Match match) { return ((char) Int32.Parse(match.Value.Substring(2), NumberStyles.HexNumber)).ToString(); } );

第一個示例顯示了使用lambda表達式(C#3.0)進行的替換,第二個示例使用了應與C#2.0一起使用的委托。


為了分解這里發(fā)生的事情,首先我們創(chuàng)建一個正則表達式:


new Regex( @"\\[uU]([0-9A-F]{4})" );

然后,我們使用字符串'result'和一個匿名方法(在第一個示例中為lambda表達式,在第二個示例中為委托-委托也可以是正則方法)調(diào)用Replace(),該方法將轉(zhuǎn)換在字符串中找到的每個正則表達式。


Unicode轉(zhuǎn)義的處理方式如下:


((char) Int32.Parse(match.Value.Substring(2), NumberStyles.HexNumber)).ToString(); });

獲取表示轉(zhuǎn)義的數(shù)字部分的字符串(跳過前兩個字符)。


match.Value.Substring(2)

使用Int32.Parse()解析該字符串,該字符串采用Parse()函數(shù)應該期望的字符串和數(shù)字格式,在這種情況下為十六進制數(shù)字。


NumberStyles.HexNumber

然后,我們將結果數(shù)字轉(zhuǎn)換為Unicode字符:


(char)

最后,我們在Unicode字符上調(diào)用ToString(),它為我們提供了其字符串表示形式,該字符串表示形式是傳遞回Replace()的值:


.ToString()

注意:可以使用match參數(shù)的GroupCollection和正則表達式中的子表達式來捕獲數(shù)字(而不是使用Substring調(diào)用來捕獲要轉(zhuǎn)換的文本),以僅捕獲數(shù)字('2320'),但這更加復雜且可讀性較差。


查看完整回答
反對 回復 2019-10-19
  • 3 回答
  • 0 關注
  • 718 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號