关于java基础知识的归档整理(九)——String类

一、String类

1、字符串是一个特殊的对象。
2、字符串一旦初始化就不可以改变。
3、通过String类构造函数可以知道,将字节数组或字符串转换成字符串。

public class StringDemo {

		public static void main(String[] args) {
		
		//定义一个字符串。
		String str = "abcd";  
		System.out.println("str="+str);

		//多个引用指向同一个字符串
		System.out.println("---------------");
		String s1 = "itcast";
		String s2 = "itcast";
		System.out.println(s1==s2);
		//两个内容相同,创建方式不同的字符串
		System.out.println("--------------");
		String s3 = "abc";
		String s4 = new String("abc");
		
		//s3和s4有什么不同呢?★★★★★重点掌握的知识点
		/*
		 * s3创建,在内存中只有一个对象。
		 * 
		 * s4创建,在内存中有两个对象。
		 */
		
		System.out.println(s3==s4);//false
//		因为String复写了equals方法,
//		建立字符串自己的判断相同的依据。通过字符串对象中的内容来判断的。
		System.out.println(s3.equals(s4));//true,
		
	}

}

二、String方法查找练习

1,字符串是否以指定字符串开头。结尾同理。
* boolean startsWith(string)
* boolean endsWith(string)
2,字符串中是否包含另一个字符串。
* boolean contains(string);
* int indexOf(string)//如果返回-1,表示不存在。
3,字符串中另一个字符串出现的位置。
* int indexOf(string)
4,将字符串中指定的字符串替换成另一个字符串。
* String replace(oldstring , newstring)
*
5,字符串如何比较大小?
*
6,将字符串转成一个字符数组。或者字节数组。
* toCharArray()
* getBytes()
7,将字母字符串转成大写的字母字符串。
* toUpperCase()
* toLowerCase();
8,将字符串按照指定的方式分解成多个字符串, "lisi,wangwu,zhaoliu"获取三个姓名。
* String[] split(string);

public static void main(String[] args) {		
		//1
		String str = "StringDemo.java";
		boolean b1 = str.startsWith("Demo");//false
		//2
		boolean b2 = str.contains("Demo");//CharSequence x = "Demo";//true
		//4
		String s = str.replace("haha", "Test");//没有被替换内容时,结果是原串儿。
		System.out.println("s="+s);
		//6
		char[] chs = str.toCharArray();
		byte[] bytes = str.getBytes();
		//7
		String upperString = str.toUpperCase();
		
		//8
		str = "lisi,wangwu,zhaoliu";
		String[] names = str.split(",");
		for (int i = 0; i < names.length; i++) {
			System.out.println(names[i]);
		}
		
		//5,字符串如何比较大小?
		int result = "ab".compareTo("ab");//只要想让对象具备比较大小的功能只需实现Comparable接口。
		System.out.println("result:"+result);
		
	}

}

学习重点:要学会查找API文档,并熟练应用它,会是软件开发的效率大幅提高

## 三、Stringbuffer

StringBuffer:
		 * 1,是一个字符串缓冲区,其实就是一个容器。
		 * 2,长度是可变,任意类型都行。注意:是将任意数据都转成字符串进行存储。
		 * 3,容器对象提供很多对容器中数据的操作功能,比如:添加,删除,查找,修改。
		 * 4,必须所有的数据最终变成一个字符串。
		 * 和数组最大的不同就是:数组存储完可以单独操作每一个元素,每一个元素都是独立的。
		 * 字符串缓冲区,所有存储的元素都被转成字符串,而且最后拼成了一个大的字符串。
		 * 
		 * 可变长度数组的原理:新建数组,并复制数组元素到新数组中。
		 */

public class StringBufferDemo {

	public static void main(String[] args) {

	 
	//1,创建一个字符串缓冲区对象。用于存储数据。
	StringBuffer sb = new StringBuffer();
	
	//2,添加数据。不断的添加数据后,要对缓冲区的最后的数据进行操作,必须转成字符串才可以。
	String str = sb.append(true).append("hehe").toString();

// sb.append(“haha”);

// sb.insert(2, “it”);//插入

// sb.delete(1, 4);//删除

// sb.replace(1, 4, “cast”);
// sb.setLength(2);
System.out.println(sb);

// String s = “a”+5+‘c’;//原理就是以下这句
// s = new StringBuffer().append(“a”).append(5).append(‘c’).toString();

}

}


## 四、StringBuilder 与Stringbuffer的区别

		 * StringBuilder:非同步的。单线程访问效率高。
		 * StringBuffer:同步的,多线程访问安全。
		 
——————————————————————————
个人觉得掌握如何API文档是很重要的,这更符合java面向对象的思想
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值