coderbyte_Letter Capitalize

题目信息

Challenge
Using the JavaScript language, have the function LetterCapitalize(str) take the str parameter being passed and capitalize the first letter of each word. Words will be separated by only one space.

Sample Test Cases

Input:"hello world"

Output:"Hello World"

Input:"i ran there"

Output:"I Ran There"

题目分析

  • 1、去除输入字符串收尾空格
  • 2、按空格(多个)分割字符串
  • 3、分割后word首字母大写处理
  • 4、word合并

自己的代码

function LetterCapitalize(str) { 
    var temp_str = str.replace(/^\s+|\s+$/g,"");
    var str_arr = temp_str.toLowerCase().split(" ");
    var out_arr = new Array()
    for(var i = 0; i < str_arr.length; i++)
    {
       out_arr[i] = str_arr[i][0].toUpperCase() + str_arr[i].substring(1,str_arr[i].length);
    }
  // code goes here  
  return out_arr.join(" "); 
         
}
   
// keep this function call here 
LetterCapitalize(readline());           

代码分析

  • 1、 str.replace(/^\s+|\s+$/g,"")实现收尾多个空格的去除;
  • 2、 toLowerCase()英文小写化;
  • 3、 toUpperCase()英文大写化;
  • 4、 toLowerCase()toUpperCase()不会改变原有字符串,因此需要新变量存储;首字符大写时,需要将剩余字符和大写的字符合并。

别人的代码

function LetterCapitalize(str) { 

  // code goes here   
  return str.split(/\s+/g).map(function(word) {
    return word[0].toUpperCase() + word.slice(1);
  }).join(' ');    
}
   
// keep this function call here 
// to see how to enter arguments in JavaScript scroll down
LetterCapitalize(readline()); 

代码分析

  • 1、 str.split(/\s+/g)按多个字符串分割字符串
  • 2、map分割后得到的数组每个元素按匿名函数进行处理
  • 3、word[0].toUpperCase()首字符大写
  • 4、word.slice(1)字符串切片函数
coderbyte_Letter Capitalize_第1张图片
slice.JPG

实例

var str="Hello happy world!"
document.write(str.slice(6))

happy world!

你可能感兴趣的:(coderbyte_Letter Capitalize)