Java基础之字符串

1. 字符串(String)

字符串操作是计算机程序设计中最常见的行为。

String并不是基本数据类型,而是一个对象。查看源码会发现,String是一个被final关键词修饰的字符数组。因此String类是不可变类,任何对String的改变都会引发在String pool中新的String对象的生成。

用处如图所示

String的intern方法:intern 方法会从字符串常量池中查询当前字符串是否存在,若不存在就会将当前字符串放入常量池中。

2. StringBuffer 与 StringBuilder

StringBuffer 和StringBuilder都是可变类,任何对它所指代的字符串的改变都不会产生新的对象。

它们的原理和操作都基本相同,区别在于StringBuffer持并发操作,线性安全适合多线程中使用。StringBuilder不支持并发操作,线性不安全,不过在单线程中的性能比StringBuffer高。

3. 常用的方法(StringBuffer)

append方法:追加内容到StringBuffer的末尾

deleteCharAt方法:删除指定位置的字符,将剩余内容形成新的字符串。

insert方法:insert(int offset, String str)在索引值位置插入字符串

reverse方法:将StringBuffer对象中的内容反转,形成新的字符串

setCharAt方法:setCharAt(int index, char ch)修改位置上的字符

trimToSize方法:将对象存储空间缩小到与字符串长度一致,减少空间浪费

getChars方法:getChars(int start,int end, char chars[],int charStart)将对象中从start位置开始,到end位置的字符串截取复制给以charStart位置开始的chars数组。

4.应用

剑指offer 04题:将字符串中的空格替换成%20

package atOffer04;

import java.util.Scanner;

public class ReplaceSpace {

	public static String replaceSpace(StringBuffer str) {
		if(str == null)
			return null;
		StringBuilder sb = new StringBuilder();
		for(int i = 0; i<str.length(); i++) {
			if(str.charAt(i) == ' ')
				sb.append("%20");
			else
				sb.append(str.charAt(i));
		}
		return sb.toString();
	}
		

	public static void main(String[] args) {
			// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		StringBuffer str = new StringBuffer(sc.nextLine());
		System.out.println(replaceSpace(str));
		sc.close();
		
	}

}

要点:字符串的修改操作即StringBuffer的使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值