当前位置: 首页 > 编程笔记 >

在JavaScript中使用二进制数交换字符串大小写

卫嘉佑
2023-03-14
本文向大家介绍在JavaScript中使用二进制数交换字符串大小写,包括了在JavaScript中使用二进制数交换字符串大小写的使用技巧和注意事项,需要的朋友参考一下

问题

我们需要编写一个包含字符串str和数字n的JavaScript函数。我们的函数应使用n更改给定的字符串str。

n中的每一位将指定是否为s中的每个字母字符交换大小写-

如果该位为1,则交换大小写;否则为0。如果其为0,则保持原样。当我们完成n的最后一位时,请从第一位开始。

最后,我们应该返回由此形成的新字符串。

示例

以下是代码-

const str = 'hey there';
const num = 21;
const swapCase = (str = '', num = 1) => {
   const alphaLength = str
   .split('')
   .reduce((acc, val) => val.toLowerCase() !== val.toUpperCase() ? ++acc : acc, 0);
   let binary = num.toString(2);
   while(binary.length < alphaLength){
      binary += binary;
   };
   let res = '';
   for(let i = 0; i < str.length; i++){
      const el = str[i];
      if(el.toUpperCase() !== el.toLowerCase() && +binary[i] === 1){
         if(el.toLowerCase() === el){
            res += el.toUpperCase();
         }else{
            res += el.toLowerCase();
         }
      }else{
         res += el;
      };
   };
   return res;
};
console.log(swapCase(str, num));

输出结果

以下是控制台输出-

HeY TheRe
 类似资料:
  • 问题内容: 我想将字符串的字符从小写改为大写。 我的代码在下面,我的代码得到的输出是; 您能告诉我哪里错了,并解释原因吗?提前致谢 问题答案: 如果要反转该字符串的大小写,请尝试以下操作:

  • 我如何将一个写为二进制的字符串转换为二进制(字节数组)? 如果我有一个字符串: 下面是当我将二进制设置为字节数组时发生的情况(字节数组返回48,这是ASCII) 我不擅长解释,所以希望上面的例子足以告诉你我想要什么。

  • 问题内容: 我想将十六进制字符串转换为二进制字符串。例如,十六进制2是0010。下面是代码: 但是,这仅适用于十六进制0-9;它不适用于十六进制A-F,因为它使用。谁能增强它? 问题答案: 您需要告诉Java int是十六进制的,如下所示:

  • 问题内容: 我需要一种方法来获取python中字符串的二进制表示形式。例如 是否有一些巧妙的方法来做到这一点? 问题答案: 像这样吗

  • 问题内容: 我发现将十六进制转换为二进制的方式如下: 尽管此方法适用于较小的十六进制数,但以下十六进制数 抛出一个 因此,我编写了以下似乎可行的方法: 上面的方法基本上接受十六进制字符串中的每个字符,并在必要时将其转换为等价的二进制零,然后将其连接到返回值。这是执行转换的正确方法吗?还是我忽略了一些可能导致我的方法失败的事情? 在此先感谢您的协助。 问题答案: 会做你想要的。只需传递2的基数即可。

  • 问题内容: 我需要将二进制字符串转换为十六进制字符串,但是我有问题。我通过这种方法将二进制字符串转换为十六进制字符串: 没关系!但是我丢失了字符串左侧的零。例如: 该方法返回此:123456789ABCDEF,但我想返回此: 00000123456789ABCDEF 问题答案: 而不是我将使用解析值,然后以所需的宽度(在您的示例中为21)输出值: