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

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

C# 檢查字符串是半角還是全角

C# 檢查字符串是半角還是全角

C#
月關(guān)寶盒 2023-07-09 15:16:07
使用下面的代碼將日語字符串從全角轉(zhuǎn)換為半角,但它返回相同的全角字符串而不進(jìn)行轉(zhuǎn)換。string?userInput?=?"チヨチヨチチヨチヨチ"; string?result?=?userInput.Normalize(NormalizationForm.FormKC);預(yù)期輸出(半角): 實際輸出: 全角然而,即使上面的代碼應(yīng)該將全角字符串轉(zhuǎn)換為半角,當(dāng)我將半角字符串 (??????????) 傳遞給上面的代碼時,它會將其轉(zhuǎn)換為全角形式 (チヨチヨチチヨチヨチ) 。我在這里做錯了什么?無論如何,如果我的字符串已經(jīng)是半角,我不希望執(zhí)行上面的代碼。如何檢查字符串是半角還是全角?
查看完整描述

1 回答

?
aluckdog

TA貢獻(xiàn)1847條經(jīng)驗 獲得超7個贊

標(biāo)準(zhǔn)化方法按預(yù)期工作。它必須將字符轉(zhuǎn)換為標(biāo)準(zhǔn)字符,這樣二進(jìn)制比較才能正確應(yīng)用。

但是,如果您想要始終將全角字符轉(zhuǎn)換為半角字符的自定義轉(zhuǎn)換,則可以創(chuàng)建一個字典來將全角字符映射到半角字符。

如果您想確保字符串是半角,那么如果它包含任何全角字符,則會被拒絕。創(chuàng)建一個所有全角字符(拉丁文和日文)的字符串,然后在全角字符串中查找要測試字符串的所有字符。

isHalfWidthString為此目的編寫了方法,并添加了全角到半角轉(zhuǎn)換器方法。我認(rèn)為這可能會有所幫助:

? public class FullWidthCharactersHandler

? ? {

? ? ? ? static Dictionary<char, char> fullWidth2halfWidthDic;

? ? ? ? static FullWidthCharactersHandler()

? ? ? ? {

? ? ? ? ? ? fullWidth2halfWidthDic = new Dictionary<char, char>();

? ? ? ? ? ? string fullWidthChars = "アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンッァィゥェォャュョ??ー0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";

? ? ? ? ? ? string halfWidthChars = "??????????????????????????????????????????????????????????0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";

? ? ? ? ? ? for (int i = 0; i < fullWidthChars.Length; i++)

? ? ? ? ? ? {

? ? ? ? ? ? ? ? fullWidth2halfWidthDic.Add(fullWidthChars[i], halfWidthChars[i]);

? ? ? ? ? ? }

? ? ? ? }


? ? ? ? public static bool isHalfWidthString(string toTestString)

? ? ? ? {

? ? ? ? ? ? bool isHalfWidth = true;

? ? ? ? ? ? foreach (char ch in toTestString)

? ? ? ? ? ? {

? ? ? ? ? ? ? ? if (fullWidth2halfWidthDic.ContainsKey(ch))

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? isHalfWidth = false;

? ? ? ? ? ? ? ? ? ? break;

? ? ? ? ? ? ? ? }

? ? ? ? ? ? }

? ? ? ? ? ? return isHalfWidth;

? ? ? ? }


? ? ? ? public static string convertFullWidthToHalfWidth(string theString)

? ? ? ? {

? ? ? ? ? ? StringBuilder sbResult = new StringBuilder(theString);

? ? ? ? ? ? for (int i = 0; i < theString.Length; i++)

? ? ? ? ? ? {

? ? ? ? ? ? ? ? if (fullWidth2halfWidthDic.ContainsKey(theString[i]))

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? sbResult[i] = fullWidth2halfWidthDic[theString[i]];

? ? ? ? ? ? ? ? }

? ? ? ? ? ? }

? ? ? ? ? ? return sbResult.ToString();

? ? ? ? }

? ? }

查看完整回答
反對 回復(fù) 2023-07-09
  • 1 回答
  • 0 關(guān)注
  • 372 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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