String
/**
*
* java.lang.String //字符串,字符串一旦被调用,就不能别改变
* public final class String
* private final char[] value
* 1.提升字符串的访问效率,程序提供了"缓存"技术,所有在"" 中的字符串,都会在方法区中的"常量池"创建一个字符串
* 对象,然后呢。
* 2.在程序执行中,如果程序在调用时用到某个字符串,eg"abc" ,程序会现在常量池中搜索,如果有的话,就直接拿过来使用
* 如果没有,就创建一个(字符串常量池,是一个缓存区)
* 3.比较两个字符串是否一致,必须使用 equals()
*
*
*/
//创建一个字符串对象 "abc" 这个对象的引用为s1 ,
//string 不可改变是指,对象不可改变,就是指对象一旦创建,就不能在改变,但是他的引用可以改变
//引用可以指向其他对象
String s1="abc";
s1="cdef";
//会创建三个String 对象,一般不推荐使用"+" 因为一拼接就会生成新的字符串对象。效率比较低
String s2="buhc";
String s3="buhuiaa";
String s4=s2+s3;
/**
* 1.区别:
* String s5,只会在字符串常量池中创建一个对象,而new String() 会在常量池中,以及heap 堆中都会创建对象。
*
*/
String s5="abc";
String s6=new String("abc");
常见的字符串操作函数:
/**
* char charAt()
* endwith()
* equalsIgnoreCase() 比较两个字符串,但是忽略字符的字母的大小。
* getBytes() 将字符串,转换为字符数组
* indexOf() 子字符串在次字符串中第一次出现的索引
* matchs() 匹配,需要用到正则表达式
* split(String s) 将字符串,以 s 分割,返回的是数组
* boolean startwith() 以什么结尾
* string subString(int length ) 截取字符串的
* string subString(beginIndex,endIndex)
* toUpperCase()
* toLowerCase()
* trim() 去空格
*/
/**
* 正则表达式:
* 1.字符模型,专门做字符串格式匹配的,是通用的
* \d 数字
* \D 数字
* \W 非英文字母
* \w 英文字母
*/