5.String 和 StringBuffer类常用方法

发表日期:2015-07-07 23:16:51 | 来源: | | 浏览(713) 分类:JAVA基础

StringDemo

public class StringDemo {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		String name1 = "eniac";
		String name2 = new String("eniac");
		String name3 = "eniac";
		String name4 = new String("eniac");
		
		System.out.println(name1);//eniac
		System.out.println(name2);//eniac
		System.out.println(name3);//eniac
		System.out.println(name4);//eniac
		
		//那么比较一下呢?
		System.out.println(name1==name2);//false
		System.out.println(name1==name3);//true
		System.out.println(name2==name4);//false
		/* 值都是eniac,为什么会不同呢?这就要内存分析了,
		 * JAVA这个语言 A==B 和其他语言不同,它不是比较内容的值是否相同,而是比较内存地址是否相同
		 * new String() 会每次都开辟一个新空间,所以内存地址会不同,
		 * 而 String name1 = "eniac",会开辟一次 而 String name3 = "eniac" 会引用上一次name1的内存地址
		 * 所以,从性能而言,尽量使用 String name3 = xxx 的
		 */
		
		//如果一定要比较值是否相同,我们不在意内存地址是否相同的话,可以这样
		System.out.println(name1.equals(name2));//true
		
		
		
		//字符串换成字符数组
		String str1 = "canquick";
		char[] Cstr1 = str1.toCharArray();
		System.out.println(Cstr1);//canquick
		for (int i = 0; i < Cstr1.length; i++) {
			char c = Cstr1[i];
			System.out.println(c);//c、a、n、q、u、i、c、k
		}

		//字符数组换成字符串
		String str2 = new String(Cstr1);
		String str3 = new String(Cstr1,3,5);
		System.out.println(str2);//canquick
		System.out.println(str3);//quick
		
		//从字符串中取出指定位置的字符
		char str4 = str1.charAt(3);
		System.out.println(str4);//q
		
		//字符串与byte数组转换
		byte[] byte1 = str1.getBytes();
		System.out.println(byte1);
		System.out.println(new String(byte1));//canquick
		System.out.println(new String(byte1,3,5));//canquick

		//取得一个字符串的长度
		System.out.println(str1.length());//8
		
		//查找指定字符串是否存在
		System.out.println(str1.indexOf("i"));//5
		System.out.println(str1.indexOf("i",3));//从第四个位置开始查找
		
		//去掉空格
		System.out.println("   hello   !".trim());//hello   !
		
		//字符截取
		System.out.println(str1.substring(1, 3));//an
		
		//拆分字符串
		String str5[] = str1.split("i");
		for (String string : str5) {
			System.out.println(string);//canqu、ck
		}
		
		//大小写转换
		System.out.println(str1.toUpperCase());//CANQUICK (toLowerCase:转小写)
		
		//判断字符串是否以指定字符开头或结尾
		System.out.println(str1.startsWith("can"));//true
		System.out.println(str1.endsWith("ck"));//true
		
		//不区分大小写比较
		System.out.println(str1.equalsIgnoreCase("CANQUICK"));//true
		
		//字符串替换
		System.out.println(str1.replaceAll("quick", "like"));//canlike
		
	}

}



StringBufferDemo

public class StringBufferDemo01 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		StringBuffer buffer = new StringBuffer();
		buffer.append("Hello");//Hello
		buffer.append("world").append("!!!");//Helloworld!!!//字符串插入
		buffer.insert(5," ");//Hello world!!!
		buffer.reverse();//!!!dlrow olleH//字符串反转
		buffer.reverse();//Hello world!!!
		buffer.replace(6, 11, "ENIAC");//Hello ENIAC!!!//字符串替换

		System.out.println(buffer.substring(6, 11));//ENIAC 字符串截取
		
		buffer.delete(6, 11);//Hello !!!//字符串删除

		System.out.println(buffer.indexOf("llo"));//2 //查找字符串(-1为无)
		System.out.println(buffer);
		
	}

}


集速网 copyRight © 2015-2022 宁ICP备15000399号-1 宁公网安备 64010402001209号
与其临渊羡鱼,不如退而结网
欢迎转载、分享、引用、推荐、收藏。