题目描述
剑指 Offer 05. 替换空格
代码实现
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
| import java.util.Scanner; import java.lang.StringBuilder;
public class TiHuanKongGeLcof05 { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print("请输入需要替换【空格】为【20%】的字符串:");
System.out.println("\n" + new Solution().replaceSpace(input.nextLine())); } }
class Solution { public String replaceSpace(String s) { if(s == null || s.length() == 0){ return s; } StringBuilder res = new StringBuilder(); for(char item : s.toCharArray()){ if (item == ' ') { res.append("%20"); }else{ res.append(item); } } return res.toString(); } }
class Solution { public String replaceSpace(String s) { if(s == null || s.length() == 0){ return s; } StringBuilder temp = new StringBuilder(); for (char item : s.toCharArray()) { if (item == ' ') { temp.append(" "); } }
if (temp.length() == 0) { return s; }
int left = s.length() - 1;
s += temp.toString(); char[] ori = s.toCharArray();
int right = s.length() - 1; while (left >= 0){ if (ori[left] == ' ') { ori[right--] = '0'; ori[right--] = '2'; ori[right] = '%'; }else{ ori[right] = ori[left]; } right--; left--; }
return new String(ori); } }
|
个人总结
为什么我觉得如果对于 Java 的 String,StringBuilder,StringBuffer
熟悉的话,第一个显得更加高效简单。