1. import java.util.Arrays;
    2. /**
    3. * 面试题5:替换空格
    4. * 实现一个函数,把字符串中的每一个空格替换成“%20”。
    5. * 例如,输入“We are happy”,输出"We%20are%20happy"
    6. */
    7. public class No5 {
    8. public static void main(String[] args) {
    9. //测试用例构建
    10. //1、输入包含空格(空格位于字符串的最前边,最后边,中间,连续多个空格)
    11. //2、输入不含空格
    12. //3、输入为空,输入只有一个空格
    13. String test1 = "Hello World";
    14. String test2 = " Hello World ";
    15. String test3 = " ";
    16. String test4 = "";
    17. String test5 = "Hello World";
    18. System.out.println(methord2(test5));
    19. }
    20. //字符数组
    21. public static String methord1(String inputString){
    22. if(inputString==null){
    23. return null;
    24. }
    25. int count = 0;
    26. for(char c:inputString.toCharArray()){
    27. if(' '==c){
    28. count++;
    29. }
    30. }
    31. char[] result = new char[inputString.length()+2*count];
    32. int i = 0;
    33. for(char c: inputString.toCharArray()){
    34. if(c==' '){
    35. result[i] = '%';
    36. result[i+1] = '2';
    37. result[i+2] = '0';
    38. i+=3;
    39. }else{
    40. result[i] = c;
    41. i++;
    42. }
    43. }
    44. return new String(result);
    45. }
    46. //StringBuilder
    47. public static String methord2(String inputString){
    48. if(inputString==null){
    49. return null;
    50. }
    51. StringBuilder result = new StringBuilder();
    52. for(char c: inputString.toCharArray()){
    53. if(c==' '){
    54. result.append("%20");
    55. }else{
    56. result.append(c);
    57. }
    58. }
    59. return result.toString();
    60. }
    61. }