java常用类一:String

String类:构造字符串对象

  *常量对象:字符串常量对象那个是用双引号括起来的字符序列。例如:“你好”、“12.97”、“boy”等。

  *字符串的字符使用Unicode字符编码,一个字符占两个字节

  *String类较常用的构造方法:

    -String s1 = new String();

    -String s2 = new String(String original);

    -String s3 = new String(char[] a);

    -String s4 = new String(char[] a,int startIndex,int count);

    --String str = "abc";与String str1 = new String("abc");区别

字符串的特性

  * String是一个final类,代表不可变的字符序列

  *字符串是不可变的,一个字符串对象一旦被配置,其内容是不可变的。

 

StringBuffer类

  *java.lang.StringBuffer代表可变的字符序列,可以对字符串内容进行增删

  *很多方法与String相同,但StringBuffer是可变长度的

  *StringBuffer是一个容器

示例代码:

  /*String:代表不可变的字符序列。底层使用char[]对象

   *String 是final的

   */

  @Test

  public void test1(){

    String str1 = "JavaEE";//字符串常量池

    String str2 = "JavaEE";

    String str3 = new String("JavaEE");//堆

    String str4 = “JavaEE”+“Android”;

    String str5 = “Android”;

    String str6 = str1+str5;

    str5 = str5+“Handoop”;

    String str7 = str6.intern();

    String str8 = "JavaEEAndroid";

    System.out.println(str1==str2);//true

    System.out.println(str1==str3);//false

    System.out.println(str1.equals(str3));//true

    System.out.println(str4==str6);//false

    System.out.println(str4.equals(str6));//true

    System.out.println(str7==str4);//true

    System.out.println(str4==str8);//true

    Person p1  = new Person("AA");

    Person p2  = new Person("AA");

    System.out.println("^^"+(p1.name==p2.name));//true

    Person p3 = new Person(new String("AA"));

    System.out.println("^_^"+(p1.name==p3.name));//false

  }

 

常用函数:

public int length()

public char charAt(int index) //返回在指定index位置的字符。index从0开始

public boolean equals(Object anObject)//比较两个字符串是否相等。相等返回true。否则返回false

public int compareTo(String anotherString) 

public int indexOf(String s)//返回s字符串在当前字符串中首次出现的位置。若没有,返回-1

public int indexOf(String s ,int startpoint)//返回s字符串从当前字符串startpoint位置开始

public int lastIndexOf(String s)//返回s字符串最后一次在当前字符串中出现的位子。若无,返回-1

public int lastIndexOf(String s,int startpoint)

public boolean startWith(String prefix)//判断当前字符串是否以prefix开始

public Boolean endWith(String suffix) //判断当前字符串是否以suffix结束

public boolean regionMatches(int firstStart,String other,int otherStart,int length) 

判断当前字符串从firestStart开始的子串与另一个字符串other从otherStart开始,length长度的字符

@Test

public void test3(){

  String str1 = "abccdefgijkbcc";

  String str2 = "abcc";

  String str3 = "bcc";

  System.out.println(str2.length());//4

  System.out.println(str1.charAt(10));//j

  System.out.println(str1.equals(str2));//false

  System.out.println(str2.equals("abcc"));//true

  System.out.println(str1.compareTo(str2));//11

  System.out.println(str1.indexOf(str3));//1

  System.out.println(str1.lastIndexOf(str3));//12

  System.out.println(str1.regionMatches(10,str3,0,str3.length()));//false

}

 

public String substring(int startpoint)

public String substring(int start,int end)

//返回从start开始到end结束的一个左闭右开的子串。start可以从0开始

public String replace(char oldChar,char newChar)

public String replaceAll(String old,String new)

public String trim()

public String concat(String str)//链接当前字符串与str

public String[] split(String regex)//按照regex将当前字符串拆分,拆分为多个字符串,整体返回为一个字符串数组

@Test

public void test4(){

  String str1 = "北京我爱你!";

  String str2 = "杭州我爱你";

  String str3 = str1.substring(2);

  System.out.println(str3);

  System.out.println(str1);

  String str4 = str1.replace("北京",“南京”);

  System.out.println(str4);

  System.out.println(str1);

  String str5 = "   abc  d ";

  String str6 = str5.trim();

  System.out.println("------"+str6+"------");

  System.out.println("-----------"+str5+"--------");

  String str7 = str1.concat(str2);

  System.out.println(str7);

  String str8 = "abc*d-e7f-ke";

  String[] strs = str8.split("-");

  String[] strss = str8.split("-",2);

  for(int i = 0;i<strss.length;i++){

    System.out.println(strss[i]);

  }

}

 

字符串类型转换

1、字符串与基本数据类型、包装类之间转换

  *字符串>基本数据类型、包装类:调用相应的包装类的parseXxx(String str);

  *基本数据类型、包装类>字符串:调用字符串的重载的valueOf()方法

2、字符串与字节数组之间的转换

  *字符串>字节数组:调用字符穿的getBytes()

  *字节数组>字符串:调用字符串的构造方法

3、字符串与字符数组的转换

  *字符串>字符数组:调用字符串的toCharArray()

  *字符数组>字符串:调用字符串的构造器

@Test

public void test5(){

  //1、字符串与基本数据类型、包装类之间转换

  String strq ="123";

  int i = Integer.parseInt(strq);

  System.out.println(i);

  String str2 = i+"";

  str2 = String.valueOf(i);

  System.out.println(str2);

  //2、字符串与字节数组间的转换

  String str = "abcd123";

  byte[] b = str.getBytes();

  for(int j = 0;j<b.length;j++){

    System.out.println((char)b[j]);

  }

  String str1 = new String(b);

  System.out.println(str1);

  //3、字符串与字符数组间的转换

  String str4 = "abc123中国";

  char[] c = str4.toCharArray();

  for(int j = 0;j<c.length;j++){

    System.out.println(c[j]);

  }

  String str5 = new String(c);

  System.out.println(str5);

}

  

posted @ 2018-08-31 20:15  小龟一号  阅读(81)  评论(0)    收藏  举报