//处理字符串时常用的方法总结课件 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}; } }