Level 7 kyu :Reverse words
字符串反转每一个单词,但保留所有空格
例:
"This is an example!" ==> "sihT si na !elpmaxe"
"double spaces" ==> "elbuod secaps"
主要方法:
charAt(index)
第一次提交:测试用例可以通过,但没有通过Attempt,原因没有解决连续空格的问题。
1 public static String camelCase(final String original) { 2 String[] array=original.split(" ");//分割字符串 3 for(int i=0;i<array.length;i++) {//遍历出每一个单词进行反转 4 String s=""; 5 for(int j=array[i].length()-1;j>=0;j--) { 6 if(array[i]!=" ") { 7 s=s+array[i].charAt(j); 8 } 9 } 10 array[i]=s; 11 } 12 String out=""; 13 for(int i=0;i<array.length;i++) {//最后拼接,是否到最后一个单词,是就不加空格了 14 out=(i==array.length-1)?out+array[i]:out+array[i]+" "; 15 } 16 return out; 17 }
他人解决方案1:
public static String reverseWords(final String original) { String out=""; //默认是空串 String a_word=""; for (int i=0;i<original.length();i++) { if (original.charAt(i) != ‘ ‘) { //如果不是空格,就从前加入一个单词,使单词逆序。 a_word = original.charAt(i) + a_word; } if (original.charAt(i) == ‘ ‘) { //如果是空格,就将单词放入输出字符串, out = out + a_word; a_word = ""; //单词置空,下次接着开始 out = out + " "; //输出字符串加空格 } } out = out + a_word; return out; }
方案2:
public static String reverseWords(final String original) { String[] array = original.split(" "); if(array.length == 0) return original; int i = 0; for(String string : array){ array[i] = new StringBuilder(string).reverse().toString(); i++; } return String.join(" ",array); }
最后bb一句:同样是加了空格,为什么我的不能通过。(╯-_-)╯╧╧
Codewars Solution:Reverse words
原文:https://www.cnblogs.com/mc-web/p/13170552.html