StringDemo

package cn.sasa.demo2;

public class StringDemo {

	public static void main(String[] args) {
		//String 底层采用的是字符数组
		//private final char value[]
		//private 修饰说明value只能在String类内部使用,而且又没有提供get方法,所以外部无法获取value数组,就无法改变数组中元素的值
		//final修饰说明value是常量,一旦创建,就不能被改变,value一旦被初始化成某个数组,将永远指向这个数组,不可能再指向其它的数组了
		
		//String 一旦创建就不能更改,但是变量的内存地址是可以改的
		String str = "abc";
		System.out.println(str);
		//在内存中只有一个对象,这个对象在字符串常量池中
		str = "bcd";
		System.out.println(str);
		
		//内存中有两个变量,一个在堆中,一个在字符串常量池中
		String str1 = new String("bcd");
		System.out.println(str1);
		System.out.println(str == str1);
		
		//==============================
		//------String的构造方法-----------------
		//默认字符集: 操作系统中的默认编码表, 默认编码表GBK,中文编码是负数
		//public String(byte[] bytes) //将字节数组转成字符串
		//public String(byte[] bytes, int index, int length) //将字节数组的一部分转成字符串
		String str2 = new String(new byte[] {-77,-99,79});
		System.out.println(str2);
		
		String str3 = new String(new byte[] {111,86,33,55,66,77},2,3);
		System.out.println(str3);
		
		//public String(char[] chars) //将字符数组转成字符串
		//public String(char[] chars, int index, int length) //将字符数组的一部分转成字符串
		String str4 = new String(new char[] {'h','a','h','a'});
		System.out.println(str4);
		
		//length()
		System.out.println(str4.length());
		
		//substring(int begin)
		//substring(int begin, int end)
		System.out.println(str4.substring(2));
		System.out.println(str4.substring(1,3));
		
		//contains(String str)
		System.out.println(str4.contains("ff"));
		System.out.println(str4.indexOf('d'));
		System.out.println(str4.indexOf('a'));
		
		/**
		 * * int length(): 返回字符串的长度
			* String substring(int beginIndex,int endIndex): 获取字符串的一部分
			* String substring(int beginIndex): 获取字符串的一部分
			* boolean startsWith(String prefix): 判断一个字符串是不是另一个字符串的前缀,开头
			* boolean endsWith(String prefix): 判断一个字符串是不是另一个字符串的后缀,结尾
			* boolean contains (String s): 判断一个字符串中,是否包含另一个字符串
			* int indexOf(char ch):  查找一个字符,在字符串中第一次出现的索引,被查找的字符不存在,返回-1
			* byte[] getBytes(): 将字符串转成字节数组,此功能和String构造方法相反,byte数组相关的功能,查询编码表
			* char[] toCharArray(): 将字符串转成字符数组,功能和构造方法相反
			* boolean equals(Object obj): 方法传递字符串,判断字符串中的字符是否完全相同,如果完全相同返回true
			* boolean equalsIgnoreCase(String s): 传递字符串,判断字符串中的字符是否相同,忽略大小写			
		 */
	}

}

  

posted @ 2018-12-12 14:53  SasaL  Views(137)  Comments(0Edit  收藏  举报