威尔史密斯的儿子贾登史密斯是电影的明星,如空手道小子(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。

  1. 我最初的解决方法
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


sf190404
11 声望1 粉丝