در بعضی مسائل در زبان های مختلف از ما میخواهند حروف کوچک را بزرگ و حروف بزرگ را کوچک کنیم یا فقط lowercase یا uppercase کنیم. کامپیوتر فقط با اعداد سر و کار دارد. داده هایی که ما میبینیم حاصل یک نگاشت است. یعنی نسبت دادن عدد به حرف. برای این نگاشت استانداردی به نام یونیکد ارائه شده که حروف را به اعداد نسبت میدهد.
طبق استاندارد یونیکد حروف A-Z در بازه ۶۵ تا ۹۰ قرار دارند و حروف a-z در بازه ۹۷ تا ۱۲۲. به سادگی میتوان فهمید فاصله a تا A برابر با ۳۲ است. پس وقتی به شما a داده بشود با کم کردن ۳۲ رقم از مقدار یونیکد آن شما به حرف A خواهید رسید.
برای تبدیل حروف کوچک به بزرگ اگر حرف در بازه ۹۷ تا ۱۲۲ بود ۳۲ رقم از مقدار آن میکاهیم.
برای تبدیل حروف بزرگ به کوچک اگر حرف در بازه ۶۵ تا ۹۰ بود ۳۲ رقم به آن اضافه میکنیم.
(پایتون)
تابع زیر حروف کوچک را به بزرگ و حروف بزرگ را به کوچک تبدیل میکند.
def ToggleCase (text):
text = list(text)
for index, letter in enumerate(text):
if (ord(letter) <= 122 and ord(letter) >= 97):
text[index] = chr(ord(letter) - 32)
elif (65 <= ord(letter) and ord(letter) <= 90):
text[index] = chr(ord(letter) + 32)
return ''.join(text)