正则表达式

来源:互联网 发布:兄弟连 it教育 骗局 编辑:程序博客网 时间:2024/06/08 07:13
java中,内存划分四个部分:堆、栈、数据段、代码段
堆:new(对象)
栈:局部变量
数据段:类变量、常量
代码段:方法的定义
按生命周期存放
“==”比较地址    
重写后的 equals 比较内容(String 重写)
以下代码结果为:
true  false  false  true  true  true
        String a = "a";
        String b = "a";
        String c = new String("a");
        String d = new String("a");

        System.out.println(a==b);
        System.out.println(b==c);
        System.out.println(c==d);

        System.out.println(a.equals(b));
        System.out.println(b.equals(c));
        System.out.println(c.equals(d));
String c = new String("a");   C变量指向指向堆中的字符串对象,但是产生堆中的字符串对象之前,会先在常量区中产生字符串常量对象,然后以常量对象为模板,拷入堆中的字符串对象。

//      String a = "abcd";
//      //得到第二个字符
//      char c = a.charAt(1);
//      System.out.println(c);

//      String a = "aBC";
//      String b = "ABC";
//      //比较两个字符串是否相等,并且忽略大小写
//      System.out.println(a.equalsIgnoreCase(b));

//      String a = "abcdebcd";
//      //得到指定字符串,第一次出现在a字符串的下标,如果a中不包含该字符串,返回-1
//      int index = a.indexOf("cd");
//      //得到指定字符串,最后一次出现在a字符串的下标,如果a中不包含,返回-1
//      int last = a.lastIndexOf("cd");
//      System.out.println(index+"  "+last);
//      //得到字符串长度
//      int len = a.length();
//      System.out.println(len);

//      String a = "qwewerwf";
//      //将指定字符串替换为新字符串
//      a = a.replace("we", "%");
//      System.out.println(a);

//      String a = "abcdefg";
//      //从下标为2开始,截取字符串
//      a = a.substring(2);
//      System.out.println(a);

//      String b = "abcdefg";
//      //从下标开始,到下标为4结束,截取字符串。包含起始下标,不包含结束下标
//      b = b.substring(1, 4);
//      System.out.println(b);

//      String  a = "    abc    d    we     ";
//      //去掉两头的空格
//      a= a.trim();
//      System.out.println(a);

正则表达式:
[  ]:表示 [ ]中描述的任意字符
{3,10}:表示前一个规则最少出现3次,最多出现10次
{3,}:表示最少出现3次,没有上限
{3}:表示只能出现3次
| :表示或者
*: 等价于{0,}  可以出现,可以不出现,如果出现,没有上限
+:等价于{1,}  至少出现1次,无上限
?:等价于{0,1}  可以出现,可以不出现。  如果出现,最多出现一次
.  :表示任意字符
\d:等价于[0-9] 表示数字
\s:表示空格或者回车
\w:表示[a-zA-Z0-9_ ]表示合法标识符
\u4e00-\u9fa5 :表示汉字


字符串具有长度不可变化的特性,当对字符串进行添加、替换、删除时,不会改变字符串的内容,而是产生一个新字符串。
StringBuffer 是缓存区的对象,当对它做添加、替换、删除时,直接改变它的内容,不会产生新对象

如果需要对字符串做频繁操作时,一般先转化为StringBuffer。操作完成以后,再通过调用 toString()转化为字符串。
0 0
原创粉丝点击