স্ট্রিংয়ের বড় হাতের অক্ষরকে ছোট হাতের এবং ছোট হাতেরকে বড় হাতের করুন।
উদাহরণ
Input: 'The Case OF tHis StrinG Will Be FLiPped' Output: 'tHE cASE of ThIS sTRINg wILL bE flIpPED'
সমাধান
const flipCase = (str) => {
return [...str].map(char => {
// isUpperCase চেক
if (char === char.toUpperCase() && char !== char.toLowerCase()) {
return char.toLowerCase();
}
// isLowerCase চেক
if (char === char.toLowerCase() && char !== char.toUpperCase()) {
return char.toUpperCase();
}
return char; // নন-অ্যালফাবেটিক
}).join('');
};
// ASCII অপ্টিমাইজড (শুধু ইংরেজি)
const flipCaseASCII = (str) => {
let result = '';
for (const char of str) {
const code = char.charCodeAt(0);
if (code >= 65 && code <= 90) { // A-Z
result += String.fromCharCode(code + 32);
} else if (code >= 97 && code <= 122) { // a-z
result += String.fromCharCode(code - 32);
} else {
result += char;
}
}
return result;
};
// টেস্ট
const str = 'The Case OF tHis StrinG Will Be FLiPped';
console.log(flipCase(str));
console.log(flipCaseASCII(str));
// উভয়: tHE cASE of ThIS sTRINg wILL bE flIpPED
ব্যাখ্যা
- toUpperCase/toLowerCase: ইউনিকোড সাপোর্ট, লোকালে-সেনসিটিভ
- ASCII +/- 32: দ্রুত, শুধু ইংরেজি, কোনো লোকালে ইশ্যু নেই
- char !== char.toLowerCase(): নন-অ্যালফাবেটিক ডিটেকশন (নম্বর, স্পেস, পাঙ্কচুয়েশন)
উৎপাদন
tHE cASE of ThIS sTRINg wILL bE flIpPED