代码改变世界

处理字符串时常用方法0914

2016-09-18 10:14  宇航员舒克  阅读(245)  评论(0编辑  收藏  举报
										//处理字符串时常用的方法总结课件


package f.java;

import java.util.Random;

public class zifuchaunlei0914 {

	public static void main(String[] args) 
	{
		// TODO Auto-generated method stub

		//字符串类,String不可修改的字符序列	
		String str="abc";//字符串常量赋值,abc是常量
		str="def";
		String str1=new String("tom");
		String str2=str1;
		str1="rose";//string类型,赋了新值相当于赋了新地址,原来的地址和内容都没有改变,暂时存放起来,并不是在原有地址上进行修改。
		System.out.println("str1="+str1);
		System.out.println("str1="+str2);
		
		char[] c={'a','b','c'};
		String str3=new String(c);//把其他类型转成字符串。
		System.out.println("str3="+str3);
		
		//String常用方法
		
		//length()字符串长度
		System.out.println("st3的长度="+str3.length());
		str1="abc";
		str2="abc";//str1与str2地址是相同的
		System.out.println(str1==str2);//判断是不是相等      
		//==比较的是内存地址是否相等
		
		//new String()方法,比较内存是否相等
		str1=new String("abc");
		str2=new String("abc");//new开辟了新的内存空间即地址改变了。
		System.out.println(str1==str2);//判断是否相等
		
		//equals()方法,比较内容是否相等
		System.out.println(str1.equals(str2));//此方法不管地址是否相同,只看内容是否相等。
		
		//startsWith();endsWith()判断字符串的开头和结尾
		str1="abcdefg";
		System.out.println("开头="+str1.startsWith("abcd"));//判断开头是不是abcd
		System.out.println("结尾="+str1.endsWith("g"));//判断结尾是不是g
		
		
		//indexOf();lastIndexOf()查找字符串//查找字符串的索引值
		str1="adfghjklxcvbanm";//索引从0号位开始。
		System.out.println("a="+str1.indexOf("a"));//只找第一个出现的字符在索引号的位置,后面不管//如果没有返回值为-1.//从左往右查找。
		System.out.println("a="+str1.lastIndexOf("a"));//从右向左查找//索引仍然是从左往右计算。
		
	//练习:用现有的其他知识实现startsWith();endsWith()的功能。 (提示:可以利用indexOf();lastIndexOf()查找字符串来实现)
		
		
		
		
		
		//substring();charAt()获取子字符串
		str1="adfghjklxcvbanm";
		str1.substring(0,3);//通过字符串的索引号进行截取:0,3表示从0号索引位截取到3号位索引位,但是不包括3号位,
		System.out.println("截取="+str1.substring(0,3));//取出从0到3的数
		System.out.println("截取="+str1.substring(0));//从0号位开始去
		System.out.println("截取="+str1.charAt(1));//单个取出
	//练习:随机生成4位验证码,用户最多输入5次,超过则不可以输入,正确执行。
		Random rand=new Random();
		System.out.println(rand.nextInt(100));
		System.out.println(rand.nextInt(100));
		System.out.println(rand.nextInt(100));
		System.out.println(rand.nextInt(100));
		
		
		// 替换replace("旧字符串", "新字符串"),返回替换后的新字符串;
		str1=str1.replace("a", "A");//把所有的a替换成A
		System.out.println("str1="+str1);
		
		//去空格replace(" ", "")
		str1=" 张 乃涛 ";
		System.out.println("str1="+str1.replace(" ", ""));
		
		//去前后空格trim()
		System.out.println("str1="+str1.trim());
		
		//支持正则表达式replaceAll("", "")//符合正则表达式的全部替换
		str1.replaceAll("", "");
		
		
		//分割split:使用特定分隔符把字符串转成数组
		str1="abc【#】def【#】123【#】ggg";
		String[]st=str1.split("【#】");
		System.out.println("数组的长度="+st.length);
		System.out.println("数组0="+st[0]);
	//练习:制作字符文本加密解密器             提示:(对字符进行移位来实现)	
		
		
		
		//可变字符数列StringBuilder(线程不安全,效率高)、StringBuffer(线程安全,效率低)
		//StringBuilder在后面继续添加字符 
		StringBuilder strb=new StringBuilder("abc");
		strb.append("def");//增加新的字符串
		strb.append("ghi");//增加新的字符串
		//或者strb.append("def").append("ghi").append("123");
		System.out.println("strb="+strb);
		
		//toString()转换成String类型
		StringBuilder stru=new StringBuilder("ab");
		stru.append("123");
	
		
		
		String[]yy=new String[10];
		yy[0]="a";
		yy[1]="b";
		System.out.println(yy[0]);
		String[]uu={"a","s","c"};
		int[]tt={123};
		
	}

}