大文字に統一

9294 ワード


大文字に統一
すべての文字を大文字に統一する問題
charCodeAt()を使用して、文字列インデックスのUnicode値を返します.大文字(65~90)でない場合は、大文字に変更します.
小文字には、97~122のUnicode値があります.小文字の場合は32を減算し、fromCharCode()メソッドを使用して大文字を返します.
FromCharCode()は、UTF-16コードユニットのシーケンスから文字列を生成して返すStringの静的メソッドです.
( https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/fromCharCode )
String.fromCharCode(65, 66, 67);   // returns "ABC"
String.fromCharCode(0x2014);       // returns "—"
String.fromCharCode(0x12014);      // also returns "—"; the digit 1 is truncated and ignored
String.fromCharCode(8212);         // also returns "—"; 8212 is the decimal form of 0x2014
function allCapital(str) {
  let answer = "";
  for (let x of str) {
    let num = x.charCodeAt();
    if (num >= 65 && num <= 90) answer += x;
    else answer += String.fromCharCode(num - 32);
  }
  return answer;
}

let str = "ItisTimeToStudyyyyyyyyyy";
console.log(allCapital(str));
toLowerCase()とtoUpperCase()メソッドを使用すると、異なる方法で問題を解決できます.
function allCapital(str) {
  let answer = "";
  for (let x of str) {
    if (x === x.toLowerCase()) answer += x.toUpperCase();
    else answer += x;
  }
  return answer;
}

let str = "ItisTimeToStudyyyyyyyyyy";
console.log(allCapital(str)); // "ITISTIMETOSTUDYYYYYYYYYY"
(追加)
大文字を小文字に、小文字を大文字に変換
function changeAa(str) {
  let answer = "";
  for (let x of str) {
    if (x === x.toUpperCase()) answer += x.toLowerCase();
    else answer += x.toUpperCase();
  }
  return answer;
}

let str = "StuDyHaaaaarrRRD";
console.log(changeAa(str)); // "sTUdYhAAAAARRrrd"