资讯专栏INFORMATION COLUMN

【codewars】将句子的首字母转大写

Jacendfeng / 1232人阅读

摘要:威尔史密斯的儿子贾登史密斯是电影的明星,如空手道小子和地球之后。在上写作时,他几乎总是将每个单词都用于大写。你的任务是将字符串转换为的编写方式。将每个单词的首字母大写例不是的风格的风格请注意,版本要求空字符串的返回值为或。

威尔史密斯的儿子贾登史密斯是电影的明星,如空手道小子(2010)和地球之后(2013)。贾登以他通过Twitter提供的一些哲学而闻名。在Twitter上写作时,他几乎总是将每个单词都用于大写。

你的任务是将字符串转换为Jaden Smith的编写方式。这些字符串是来自Jaden Smith的实际引用,但它们没有像他最初输入的那样大写。(将每个单词的首字母大写)

例:

不是Jaden的风格: "How can mirrors be real if our eyes aren"t real"
Jaden的风格:     "How Can Mirrors Be Real If Our Eyes Aren"t Real"

请注意,Java版本要求空字符串的返回值为null或null。

我最初的解决方法

public class JadenCase {


     public  String toJadenCase(String phrase) {
        // TODO put your code below this comment
        if (phrase == null || "".equals(phrase)) {
            return null;
        }
        String list[] = phrase.split(" ");

        String juzi = "";
        if (list != null && list.length > 0) {
            for (int i = 0; i < list.length; i++) {
                String uppWord = list[i].toUpperCase();
                char first = uppWord.charAt(0);
                String one = first + list[i].substring(1, list[i].length()) + " ";
                juzi += one;
            }
                        return juzi.substring(0,juzi.length()-1);
        }
        return null;
    }

}
投票排行前三的最佳解决方法

import java.lang.Character;

public class JadenCase {

  public String toJadenCase(String phrase) {
    if(phrase == null || phrase.equals("")) return null;
    
    char[] array = phrase.toCharArray();
    
    for(int x = 0; x < array.length; x++) {
      if(x == 0 || array[x-1] == " ") {
        array[x] = Character.toUpperCase(array[x]);
      }
    }
    
    return new String(array);
  }

}

2.

import java.util.Arrays;
import java.util.stream.Collectors;

public class JadenCase {

  public String toJadenCase(String phrase) {
      if (null == phrase || phrase.length() == 0) {
          return null;
      }

      return Arrays.stream(phrase.split(" "))
                   .map(i -> i.substring(0, 1).toUpperCase() + i.substring(1, i.length()))
                   .collect(Collectors.joining(" "));
  }

}

3.

import java.util.Arrays;
import java.util.stream.Collectors;

public class JadenCase {

  public String toJadenCase(String phrase) {
    if(phrase == null || phrase.isEmpty()) return null;
    return Arrays.stream(phrase.split("s+")).map(str -> Character.toUpperCase(str.charAt(0)) + str.substring(1))
        .collect(Collectors.joining(" "));
  }

}

参考链接:
Solutions: Jaden Casing Strings

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/74075.html

相关文章

  • 前端编码规范

    摘要:去掉无用的代码使用主动语态避免一连串松散结构的代码逻辑把相关的变量函数放在一起。该处代码运行正常,但可能由于时间赶或者其他原因,需要修正。此时需要对思路或诡异手段进行描述。 命名规范 变量名, 函数名 小驼峰【命名法 camel Case】: numberOfPeople 第一个单词的首字母小写;第二个单词开始每个单词的的首字母大写 组件名 大驼峰【命名法 Camel Case】: ...

    YJNldm 评论0 收藏0
  • 函数式编程思维在三行代码情书中的应用

    摘要:函数式编程概述如今主流的编程语言,函数式编程范式或多或少都融入其中成了标配,或者说主流语言都在进行函数式方面的扩充,这是一个大趋势。 showImg(https://segmentfault.com/img/remote/1460000015089083); 函数式编程概述 如今主流的编程语言,函数式编程范式或多或少都融入其中成了标配,或者说主流语言都在进行函数式方面的扩充,这是一...

    DC_er 评论0 收藏0
  • CodeWars 上面的奇葩问题(二)

    工作之余在codewars上看了一个问题,题目如下 写一个正则,验证密码,保证以下几点, 0.位数大于六 1.必须包含小写字母 2.必须包含大写字母 3.必须包含数字 好吧,我搞了半天没搞出来,各位看官,你们知道怎么解吗? 答案我参考了google,使用一条正则表达式是这样的 function validate(password) ...

    TANKING 评论0 收藏0
  • 刷题——Codewars Js题目(持续更新)

    摘要:发现一个很好的练习做题网站都是自己做过的,先放自己的答案,再放自己觉得不错的其他回答。 发现一个很好的练习做题网站 Codewars 都是自己做过的,先放自己的答案,再放自己觉得不错的其他回答。 1. 将首字母放到后面并加上ay pigIt(This is my string)转换成:pigIt(hisTay siay ymay tringsay) mine function...

    toddmark 评论0 收藏0
  • 】: 超简单正则表达式指南

    摘要:本文转载自什么是正则表达式正则表达式是一组由字母和符号组成的特殊文本它可以用来从文本中找出满足你想要的格式的句子一个正则表达式是在一个主体字符串中从左到右匹配字符串时的一种样式例如是一个完整的句子但我们常使用缩写的术语或正则表达式可以用来替 本文转载自https://github.com/zeeshanu/l... 什么是正则表达式? 正则表达式是一组由字母和符号组成的特殊文本, 它可...

    voidking 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<