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

本文介绍了一种将字符串中的空格替换为“%20”的方法。通过两种不同的实现方式,一种是直接遍历字符串并替换,另一种是将字符串转换为字符数组后进行替换。此外,还提供了一个简单的示例来展示如何使用Java内置函数实现同样的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目要求:请实现一个函数,将一个字符串中的空格替换成“%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 = 0; 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=0;
        char[] arr = s.toCharArray();
        for (int i = 0; i <length ; i++) {
            if(arr[i]==' '){
                numSpace++;
            }
        }
        char[] newArr= new char[numSpace*2+length];
        int n=0;
        for (int i = 0; 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);
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值