黑马程序员-->Java基础-->String类

来源:互联网 发布:pe安装linux 编辑:程序博客网 时间:2024/06/10 05:46

-------android培训java培训、期待与您交流! ----------

一、String类概述

1、字符串是一个特殊的对象。
  java中所有的字符串字面值(如:"abc")都作为此类的实例实现
2、字符串是常量,一旦初始化就不可以被改变,可以共享。
3、String str = "abc"和String str1 = new String("abc")的区别
      str在内存中只有一个对象;Str1在内存中有两个对象
4、String类复写了Object类中的equals方法,该方法用于判断字符串内容是否相同

 

二、创建字符串
1、使用new关键字创建字符串,如String str = new String("abc");
2、直接指定,如String str = "abc"
"abc"存储在字符串常量池中,等效于char[] ch = new char[]{'a','b','c'},String s = new String(ch);
3、使用串联生成新的字符串,如String str ="ab"+"c"+4;

 

三、字符串常见的操作方法
1、获取
   1.1 字符串中包含的字符数,也就是字符串的长度;
  int length():获取长度
 
   1.2 根据位置获取位置上某个字符;
  char charAt(int index)
 
   1.3 根据字符获取该字符在字符串中的位置;
 int indexOf(int ch):返回的是ch在字符串中第一次出现的位置;
  int indexOf(int ch,int fromIndex):从fromIndex指定位置开始,获取ch在字符串中出现的位置;
  int indexOf(String str):返回的是str在字符串中第一次出现的位置;
 int indexOf(String str ,int fromIndex):从fromIndex指定位置开始,获取str在字符串中出现的位置;
 int lastIndexOf(int ch) : 返回指定字符在此字符串中最后一次出现处的索引;

 

2、判断
      2.1 字符串中是否包含某一个子串。
 boolean contains(str):
 特殊之处:indexOf(str):可以索引str第一次出现位置,
   如果返回-1,表示该str不在字符串中存在。
   所以,也可以用于指定判断是否包含。
****   if(str.indexOf("aa")!=-1)
   而且该方法既可以判断,又可以获取出现的位置。

   2.2 字符串中是否有内容。
 boolean isEmpty();原理就是判断长度是否为0。

   2.3 字符串是否是以指定内容开头。
 boolean startsWith(str);
   2.4 字符串是否是以指定内容结尾。
 boolean endsWith(str);
   2.5 判断字符串内容是否相同。
 boolean equals(str);
   2.6 判断内容是否相同,并忽略大小写。
 boolean equalsIgnoreCase();

 

3、转换
   3.1 将字符数组转成字符串。
 构造函数:String(char[])
      String(char[],offser,count):将字符数组中的一部分转成字符串。

 静态方法:static String copyValueOf(char[]);
      static String copyValueOf(char[]data,int offset,int count)
                static String valueOf(char[]);

   3.2 将字符串转成字符数组。**
 char[] toCharArray();

   3.3 将字节数组转成字符串。
 String(byte[])
 String(byte[],offser,count):将字符数组中的一部分转成字符串。

   3.4 将字符串转成字节数组。
 byte[] getBytes();

   3.5 将基本数据类型转成字符串。
 static String valueOf(int);
 static String valueOf(double);如://3+""//string.valueOf(3);
 特殊;字符串和字节数组在转换过程中,是可以指定编码表的。(应用:编码和解码)

 

4、替换
 String replace(oldchar,newchar);
 String replace(charSequence target,charSequence replacement);

 

5、切割(把字符串分开)
 String[] split(regex);

 

6、子串。获取字符串中的一部分
 Sting substring(int begin);
 String substring(int begin,int end);包含头不包含尾,要包含尾就end+1

 

7、转换,去除空格,比较。
 7.1将字符串转成大写或者小写。
 String toUpperCase();
 String toLowerCase();

 7.2将字符串两端的多个空格去除。
 String trim();

 7.3对两个字符串进行自然顺序的比较。
 int compareTo(String);

代码示例:

 

四、StringBuffer

StringBuffer是字符串缓冲区,是一个容器。
特点:a、长度是可变化的;
b、可以直接操作多个数据类型;
c、最终会通过toString方法变为字符串;
常用操作:
1、存储
 StringBuffer append(数据):将指定数据作为参数添加已有数据结尾处。
 StringBuffer insert(index,数据):可以将数据插入到指定index位置。

2、删除
 StringBuffer delete(start,end):删除缓冲区中的数据,包含start,不包含end。
 StringBuffer deleteCharAt(index):删除指定位置的字符。

3、获取
 char charAt(int index)
 int indexOf(String str)
 int length()
 String substring(int start,int end)

4、修改
 StringBuffer replace(start,end,string)
 void setCharAt(int index,char ch);

5、反转。
 String reverse()

6、将缓冲区指定数据存储到指定字符数组中。
 void getChars(int srcBegin,int srcEnd,char[] dst,int dstBegin)

StringBuilder
JDK1.5版本之后出现了stringbuilder
JDK升级的原因:1、提高效率;2、简化书写;3、提高安全性。
stringBuilder和stringBuffer的区别:
stringBuffer是线程同步,stringBuilder是线程不同步
stringBuilder用于多线程是不安全的,多用于单线程,效率比较高。
 
代码演示:

 

五、基本数据类型对象包装类

1、基本类型         引用数据类型
 byte   Byte
 short   Short
 int   Integer
 long   Long
 boolean  Boolean
 float   Float
 double  Double
 char   Character

2、基本数据类型对象包装类的最常见作用,就是用于基本数据类型和字符串类型之间做转换。

 2.1、基本数据类型转成字符串。
 基本数据类型+""
 基本数据类型.toString(基本数据类型值)
 如:Integer.toString(34)

 2.2、字符串转成基本数据类型。
 (静态)[1] int a=Integer.parseInt("123");
  long a=Long.parseLong("123");
  double a=Double.parseDouble("12.33");
  float a=Float.parseFloat("12.3");
  boolean a=Bolean.parseBoolean("true");

(非静态)[2] Integer i=new Integer("123");
  int num=i.intValue();

 2.3、十进制转成其他进制。
 Integer.toBinaryString(基本数据类型值);
 Integer.toOctalString(基本数据类型值);
 Integer.toHexString(基本数据类型值);

 2.4、其他进制转成十进制。
 parseInt(string,radix)
 例子:int  x=Integer.ParseInt("110",2) //二进制转十进制 2表示二进制

代码演示:

 

 

-------android培训java培训、期待与您交流! ---------- 

0 0