替换空格

请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。

public class Solution{
	//请实现一个函数,将一个字符串中的空格替换成“%20”
	//例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
	public static String replaceSpace(StringBuffer str){
		if(str == null) {
			return null;
		}
		int n=str.length();
		for(int i = 0; i < n; i++){
			if(str.charAt(i) == ' '){
				str.append("  ");//str增加空格 添加一个%20长度加2
			}
		}
		
		int endOri= n - 1;
		int endNew=str.length() - 1;//增加了空格的长度
		while(endOri >= 0 && endNew > endOri ){
			if(str.charAt(endOri) == ' '){
				str.setCharAt(endNew--, '0');
				str.setCharAt(endNew--, '2');
				str.setCharAt(endNew--, '%');
			}else{
				str.setCharAt(endNew--,str.charAt(endOri));
			}
			endOri--;
		}
		return str.toString();
		
	}
	
}

/** java中常用的String方法

2 charAt()截取一个字符

String a = "Hello Word";
System.out.println(a.charAt(1));
输出的结果是字符串a的下标为1的字符e。

3 getchars()截取多个字符并由其他字符串接收

String a = "Hello Word";
char[] b = new char[10];
a.getChars(0, 5, b, 0);
System.out.println(b);
输出的结果为Hello,其中第一个参数0是要截取的字符串的初始下标(int sourceStart),
第二个参数5是要截取的字符串的结束后的下一个下标(int sourceEnd)
也就是实际截取到的下标是int sourceEnd-1,第三个参数是接收的字符串
(char target[]),最后一个参数是接收的字符串开始接收的位置。

4 getBytes()将字符串变成一个byte数组

String a = "Hello Word";
byte b[] = a.getBytes();
System.out.println(new String(b));
输出的结果为Hello Word的byte数组。

5 toCharArray()将字符串变成一个字符数组
String a = "Hello Word";
char[]b = a.toCharArray();

6 equals()和equalsIgnoreCase()比较两个字符串是否相等,前者区分大小写,后者不区分

String a = "Hello Word";
String b = "hello word";
System.out.println(a.equals(b));
System.out.println(a.equalsIgnoreCase(b));  
输出的结果为第一条为false,第二条为true。

 

7 startsWith()和endsWith()判断字符串是不是以特定的字符开头或结束
String a = "Hello Word";
System.out.println(a.startsWith("ee"));  
System.out.println(a.endsWith("rd"));
输出的结果第一条为false,第二条为true。

8 toUpperCase()和toLowerCase()将字符串转换为大写或小写
String a = "Hello Word";
System.out.println(a.toUpperCase());

10 trim()去掉起始和结束的空格
String a = "    Hello Word   ";
System.out.println(a.trim());
输出的结果为“Hello Word”。

11 substring()截取字符串
String a = "Hello Word";
System.out.println(a.substring(0, 5));
System.out.println(a.substring(6));
输出的结果第一条为“Hello”,第一个参数0(beginIndex)是开始截取的位置,
第二个参数5(endIndex)是截取结束的位置,输出的结果第二条是“Word”,
参数6(beginIndex)是开始截取的位置。

 

12 indexOf()和lastIndexOf()前者是查找字符或字符串第一次出现的地方,后者是查找字符或字符串最后一次出现的地方

String a = "Hello Word";
System.out.println(a.indexOf("o"));
System.out.println(a.lastIndexOf("o"));
输出的结果第一条是4,是o第一次出现的下标,第二条是7,是o最后一次出现的下标。

 

13 compareTo()和compareToIgnoreCase()按字典顺序比较两个字符串的大小,前者区分大小写,后者不区分

String a = "Hello Word";
String b = "hello word";
System.out.println(a.compareTo(b));
System.out.println(a.compareToIgnoreCase(b)); 
输出的结果第一条为-32,第二条为0,两个字符串在字典顺序中大小相同,返回0。

 

14 replace(oldStr, newStr) 替换

String a = "Hello Word";
String b = "你好";
System.out.println(a.replace(a, b));
System.out.println(a.replace(a, "HELLO WORD"));
System.out.println(b.replace("你", "大家"));
输出的结果第一条为“你好”,第二条为“HELLO WORD”,第三条为“大家好”。
    
*/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值