Java-字符串

package com.chenglei.String;

public class StringDemo02 {
	public static void main(String[] args){
		
		String string = "hello";//直接赋值
		System.out.println(string);
		String string2 = new String("world");//使用关键字new来开辟空间
		System.out.println(string2);
		
		
		int a = 100;
		int b = 100;
		System.out.println(a == b);
		
		String str = "hello";
		String str2 = new String("hello");
//		System.out.println(str == str2);//错误,因为==判断的是两个字符串的地址,
//		而在使用new关键字创建字符串的时候,在堆内存中会创建出两个地址分别存储着相同的内容,
//		未被str2指向的那块内存的作用是一块等待被回收的垃圾空间。但是在“==”比较的时候,会拿这块
//		指向的地址来比较,所以地址肯定不同。
		System.out.println(str.equals(str2));//判断两个字符串是否相同,这个方法判断的是内容
		
		String str3 = "    Hello World";
		System.out.println(str3.length());//字符串长度
		
		char data[] = str3.toCharArray();//字符串转换为数组
		for (int i = 0; i < str3.length(); i++){
			System.out.println(data[i]);
		}
		
		char ch = str3.charAt(4);//取出指定位置的字符
		System.out.println(ch);
		
		byte bytes[] = str3.getBytes();//字符串与byte数组的转换
		for (int i = 0; i < bytes.length; i++){
			System.out.println(new String(bytes));
		}
		
		System.out.println(str3.indexOf("or"));//指定的字符串或者字符在原字符串哪个位置
		
		System.out.println(str3.trim());//去掉字符串前后面的空格
		
		System.out.println(str3.substring(2, 5));//截取从第2个位置到第5个位置的字符串
		
		System.out.println(str3.toLowerCase());// 字符串小写
		System.out.println(str3.toUpperCase());//字符串大写
		
		
		System.out.println(str3.startsWith("H"));//判断字符串开头字符串是否为此字符串
		System.out.println(str3.endsWith("d"));//判断字符串结尾是否为此字符串
		
		System.out.println(str3.replace("He", "hh"));//用后一个字符串代替字符串中存在的前一个字符
		
	
		
		StringBuffer sb = new StringBuffer();//StringBuffer缓冲区,本身也是操作字符串的,但与String不同,
//		它指向的内存地址中的内容是可以改变的
		sb.append("chenglei");
		System.out.println(sb.toString());
		
		
		/*
		 * StringBuilder
		 * 1.一个可变的字符序列,该类被设计作用StringBuffer的一个简易替换,用在字符串缓冲区被单个线程使用的时候。
		 * 建议优先考虑该类,速度比StringBuffer要快,但是如果涉及到线程安全方面的问题,建议使用StringBuffer
		 * 常用方法
		 * append()   insert()
		 * 
		 */
	}
}


你可能感兴趣的:(Java-字符串)