java 基础数据遍历(1)----将一个字符串中的空格替换成“%20”

来源:互联网 发布:openstack windows 编辑:程序博客网 时间:2024/06/10 23:12

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

public static void main(String[] args) {        Scanner scanner =new Scanner(System.in);        System.out.println("请输入字符串");        String Str=scanner.nextLine();        //1.遍历str所有字符        String newStr="";        for (int i = 0; i < Str.length(); i++) {            if (Str.charAt(i)==' ') {                newStr=newStr+"%20";            }            else newStr=newStr+Str.charAt(i);        }        System.out.println(newStr);        //2.将str转化为数组然后遍历,原理同1一致        int numSpace=0;        char[] arrayStr=Str.toCharArray();        for (int i = 0; i < arrayStr.length; i++) {            if (arrayStr[i]==' ') {                numSpace++;            }        }        char[] newArrayStr=new char[arrayStr.length+2*numSpace];//确定替换空格后新数组大小        int n=0;        for (int i = 0; i < arrayStr.length; i++) {            if (arrayStr[i]==' ') {                newArrayStr[n]='%';                n++;                newArrayStr[n]='2';                n++;                newArrayStr[n]='0';            }            else newArrayStr[n]=arrayStr[i];            n++;        }        System.out.println(String.valueOf(newArrayStr));    }}

实际结果符合要求
补充:当然最简单的可以使用库函数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);    }}

实际符合要求结果

0 0
原创粉丝点击