java笔记 chapter6 Object类,String类,正则表达式

Object类(在java.lang包中)
String类
正则表达式
 
Object类
1,Object类是所有java类的父类。
2,equals方法
2.1,equals方法 和"=="运算符的关系
2.2,覆盖equals方法
3,hashCode方法
4,toString方法
 
String类:字符串的底层实现是一个char字符数组。
1,String类存在java.lang包里,继承了Object类,实现了以下接口,API显示如下
public final class String
extends Object
implements Serializable, Comparable<String>, CharSequence
2,String的直接量
     1),String的直接量是指双引号括起来的字符序列。
     2),String name = "lucy';  这里的name是String类型的引用, lucy是String的直接量。
     3),String的直接量是放在方法区的常量池里。
 
,3,
2.1,String的常用方法:length(),charAt() ,getBytes()和 getChars()
方法 length()   –返回 String 的长度,是按照char 返回的长度。备注:数组含有 length属性。
一个中文,占2个字节,但是按照char计算,中文还是1个。
方法getBytes()   –使用平台的默认字符集将此String编码为byte序列,并将结果存储到一个新的byte数组中 
                   String s3 = "欢迎java";
                    byte[] bs = s3.getBytes();
                    forbyte b : bs) {
                             System. out.println(b);
                   }
                   System. out.println( "字节数组的长度是===" + bs.length ); 
 
 方法charAt(int index)    –获得字符串指定位置的字符 
                   String s1 = "hello java" ;
                   String s2 = "hello你好" ;
                   System. out.println(s1.length()); //返回10,空格等符号也算作一个字符
                   System. out.println(s2.length());  //返回7
                   System. out.println(s1.charAt(4)); //返回字母o
 
方法getChars (int srcBegin, int srcEnd,   char[ ] dst, int dstBegin)   –拷贝字符串的部分字符序列到指定的字符数组的指定位置
                   String s4 = "welcomejavaasd";
                    char[] cs = {'a' ,'o' ,'p' ,'k' ,'s' ,'w' };
                   s4.getChars(2, 5 ,cs, 2);      //lco
                    forchar c : cs) {
                             System. out.println(c);
                   }
方法toCharArray()                  
public char[] toCharArray()  将此字符串转换为一个新的字符数组
                   String s1 = "are you ok" ;
                    char [] cs = s1.toCharArray();
                    forchar a : cs) {
                             System. out.println(a);
                   }
 
 
2.2, 字符串比较----
str1.compareTo(str2); 按照字典顺序比较, 返回0表示相等,返回大于0的数,表示字符串str1大。小于0表示str2大.
str1.compareToIgnoreCase(str2) 忽略大小写,返回0表示相等,大于0表示str1大,小于0表示str2大
方法equals(Object s) :比较两个String 对象的值是否相等,这个是区分大小写的 ,
方法equalsIgnoreCase(String    s) :比较两个String 对象的值是否相等,忽略大小写 。
public boolean equals(Object anObject)
public boolean equalsIgnoreCase(String anotherString)
 
例子:
                   String s1 = "java123";
                   String s2 = "JAVA123";
                   String s3 = "abc";
                   
                    int a = s1.compareTo(s2);  //32
                    int b = s2.compareTo(s3);    //-23
                    int c = s1.compareToIgnoreCase(s2); //0
                    int d = s2.compareToIgnoreCase(s3);  //9
 
                    boolean b1 = s1.equals(s2);  //false
                    boolean b2 = s1.equalsIgnoreCase(s2);  //true
                    boolean b3 = s1.equalsIgnoreCase(s3);  //false
 
2.3,查找字符串中的字符或子串 indexOf()   lastIndexOf()
                   String s1 = "java23中文hi234";
                    int a = s1.indexOf( "23");   //返回4
                    int a1 = s1.indexOf( "中国");   //返回-1
                    int b = s1.indexOf( "23", 5);  // 从索引为5的位置开始搜素,返回10
 
                   String s2 = "北京onedream";
                    int m = s2.lastIndexOf( "e");  //7
                    int n = s2.lastIndexOf( "r");  //6
                    int p = s2.lastIndexOf( "p");  //-1,不存在字符P,找不到就返回-1
                    int i = s2.lastIndexOf( "o", 2);   //2
                    int j = s2.lastIndexOf( "o", 1);  //-1
 
2.4,截取字符串substring()
                   String s = "tomorrow"//length是8
                   
                   String s1 = s.substring(2); //morrow                   
                   String s2 = s.substring(6); //ow
                   String s3 = s.substring(8); //返回空串""
//                 String s4 = s.substring(9); //报错 java.lang.StringIndexOutOfBoundsException:
                   String s5 = s.substring(2,5); // mor
 
2.5,字符串拼接concat
                   String s = "some";
                   String s1 = s.concat( "one");  // someone
 
2.6,valueOf
2.7,字符串分解split
                   String s1 = "and i wonder * i wonder how * i wonder why" ;
                   String[] str = s1.split( "\\*");
                    for(String a : str) {
                             System. out.println(a);
                   }
 
 
2.8,其他的String方法:replace(char1,char2)  toUpperCase()  trim() toCharArray()
                    String s = "welcome to java, hello, java中国" ;
                   String s1 = s.replace( "java""123" );
                   String s2 = s.replaceAll( "e""呵呵" );
                   String s3 = s.replaceFirst( "l""*" ); //第一个字母l用型号代替,
                   String s4 = s.replaceFirst( "k""哈哈" );
                   
                   System. out.println(s1);  //welcome to 123, hello, 123中国
                   System. out.println(s2); //w呵呵lcom呵呵 to java, h呵呵llo , java中国
                   System. out.println(s3); //we*come to java, hello, java中国
                   System. out.println(s4); //welcome to java, hello, java中国       
 
                   String s = "java开发2013";
                   String s1 = s.toUpperCase();  // JAVA开发2013
 
                   String s = "  welcome to java  中国   " ;
                   String s1 = s.trim();   //  public String trim()  返回字符串的副本,忽略前导空白和尾部空白,但是文本中间的空白不会被忽略
                   System. out.println(s1);        //welcome to java  中国         
 
 
扩展:
如何判断字符串是否包含中文?包含几个中文。
     public class HasCh {
           public static void main(String[] args) {
                   String str = "welcome to New York 小平" ;
                    int charLength = str.length();
                    int byteLenght = str.getBytes(). length;
                   
                    if(byteLenght > charLength) {
                              int chineseNum = byteLenght - charLength;
                             System. out.println( "str中的中文个数是" + chineseNum );
                   } else {
                             System. out.println( "str中不包含中文" );
                   }                  
          }
     }
 
判断字符串s1师傅包含字符串s2
           if(s1.indexOf(s2) > 0) {
             //  说明包含        
          }
 
 
正则表达式 (待补)
posted @ 2013-12-19 22:52  五星村小黄  阅读(283)  评论(0编辑  收藏  举报