Java替换字符串空格(剑指offer第四题)+数组和字符串,Stringbuffer和String的转换

/**
 * 剑指offer第四题  替换空格为“%20”
 * 解题思路就是从后向前遍历,使移动次数减少
 * 两种实现方式:1 创建新的字符串复制上去  2在原有的字符串上做替换
 * @author Lenovo
 *
 */

第一种:

public class ZiFuChuan2 {
	//创建新的字符串
	public String change(char[] a){
		int length=a.length;
		int blanknum=0;//空格数量
		for(int i=0;i<length;i++){
		if(a[i]==' '){
			blanknum++;
		   }
		}
		int newlength=length+blanknum*2;//新创建的数组长度 
		char[] a2=new char[newlength];
		int newlen=newlength-1;
		for(int i1=length-1;i1>=0;i1--){
			if(a[i1]!=' '){
				a2[newlen--]=a[i1];
			}else{
				a2[newlen--]='0';
				a2[newlen--]='2';
				a2[newlen--]='%';
			}
		}
		return String.valueOf(a2);//将数组转换为字符换
	}

第二种:

//在原有的字符串上改变
	public String change1(StringBuffer str){
		  if(str==null)
		     {
		        return null;
		     }
		     for(int i=0;i<str.length();i++)
		     {
		         char c = str.charAt(i);
		         if(c==' ')
		         {
		            str.replace(i,i+1,"%20");
		            //  sb.append("%20");

		         }
		      }
		      return str.toString();
		    }

总结:

将数组转化为字符串的方式:

(直接 a2.toString();   这样输出的是   [类型@哈希值]   不行)

 方法1:直接在构造String时转换。

char[] data = {'a', 'b', 'c'};
String str = new String(data);

  方法2:调用String类的方法转换。

    String.valueOf(char[] ch)

将字符串转化为数组的方式:

        char[] a=zi.toCharArray();

将String类型转换为Stringbuffer

      String z=“abc”;

     StringBuffer s=new StringBuffer(zi);

 

将String类型转换为Stringbuffer

   s.toString();

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值