天天看点

用Java实现将一个字符串的空格转换

题目要求:请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为hello word长度12,则经过替换之后的字符串为hello%20%20word

解题思路:

确认使用for循环结构。

方法一:直接遍历string中所有字符,将空格替换为“%”输出结果;

方法二:将string转化为数组,然后进行遍历,将空格替换为“%20”,输出结果;

package zh.study.practice;
/*
 * 题目要求:请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
解题思路:
1.确认使用for循环结构。
2.方法一:直接遍历string中所有字符,将空格替换为“%”输出结果;
方法二:将string转化为数组,然后进行遍历,将空格替换为“%20”,输出结果;
 *
 */

public class practiceday1 {
    public static String replaceSpace1(String s,int length){
        String newStr="";
        for (int i = ; i <length ; i++) {
            if(s.charAt(i)==' '){
                newStr=newStr+"%20";
            }else{
                newStr=newStr+s.charAt(i);
            }
        }

        return newStr;
    }
    public static String replaceSpace2(String s,int length){
        String newStr="";
        int numSpace=;
        char[] arr = s.toCharArray();
        for (int i = ; i <length ; i++) {
            if(arr[i]==' '){
                numSpace++;
            }
        }
        char[] newArr= new char[numSpace*+length];
        int n=;
        for (int i = ; i<arr.length ; i++) {
            if(arr[i] == ' '){
                newArr[n++]='%';
                newArr[n++]='2';
                newArr[n]='0';
            }else{
                newArr[n++]=arr[i];
            }
        }
        newStr=String.valueOf(newArr);
        return newStr;
    }

    public static void main(String[] args) {
        String s="abcd  ";
        int len=s.length();
        System.out.println(replaceSpace2(s,len));
    }
}
           

也可以使用库函数ReplaceAll

public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        System.out.println("输入字符串: ");
        String str =scanner.nextLine(); //获取string.
        String newstr =str.replace(" ", "%20");//使用库函数直接替换空格为字符串“%20”
        System.out.println(newstr);
    }

}