黑马程序员——String

来源:互联网 发布:马伯庸作品知乎 编辑:程序博客网 时间:2024/06/01 09:06

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


字符串最大特点:一旦被初始化就不可以被改变

class StringDemo {public static void main(String[] args) {String s1="abc";  //s1是一个类类型变量,"abc"是一个对象s1="kk";//打印kk ,s1指向的对象变了,刚指向abc对象,现在指向kk这个对象 //abc这个对象没变过,里面还是abc。s1的地址变了,但是abc对象内容没有变化过System.out.println(s1);}}

==equals的区别

class StringDemo {public static void main(String[] args) {String s1="abc";String s2=new String("abc");System.out.println(s1==s2);  //打印false,s1指向"abc",s2指向new String("abc"),为新的对象System.out.println(s1.equals(s2));//equals方法比较地址值而这里打印true,是因为String类复写了Object类中的equals方法,//建立了自己对象独特的判断相同内容,该方法用于判断字符串是否相同。                               }}


String类适用于描述字符串事物,那么它就提供了多个方法对字符串进行操作

常见的操作有哪些呢?

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在字符串 中出现的位置

 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 判断字符串内容是否相同。复写了Object类中的equals方法

boolean equals(str)

2.6 判断内容是否相同,并忽略大小写:boolean equalsIgnoreCase()

3转换

3.1 将字符数组转成字符串

构造函数:String(char[])

      String(char[],offset,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[],offset,count)

   将字节数组中的一部分转成字符串

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

3.5 将基本数据类型转成字符串:static String valueOf(int)

  static String valueOf(double)

    特殊:字符串和字节数组在转换过程中,是可以指定编码表的。

4替换String replace(oldchar,newchar)

5.切割String[] split(regex)

6子串获取字符串中的一部分

   String substring(begin)

   String substring(begin,end)

7转换、去除空格、比较

7.1 将字符串转成大写或则小写

  String toUpperCase()

  String toLowerCase()

7.2 将字符串两端的多个空格去除

String trim()

7.3 对两个字符串进行自然顺序的比较

int compareTo(string)

StringBuffer是字符串缓冲区,是一个容器

特点:1.长度是可变化的

      2.可以字节操作多个数据类型

       3.最终会通过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 lastIndexOf(String str) 

          int length() 

            String substring(int start, int end) 

4.修改StringBuffer replace(start,end,string)

    void setCharAt(int index, char ch) 

5.反转:StringBuffer reverse()

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

 

JDK1.5 版本之后出现了StringBuilder

StringBuffer是线程同步,StringBuilder是线程不同步,建议使用StringBuilder

升级三个因素:提高效率、简化书写、提高安全性

 

基本数据类型对象包装类

byte Byte

short   short

int   Integer

long       Long

boolean   Boolean

float       Float

double   Double

char       Character

最常见作用:用于基本数据类型和字符串类型之间做转换

基本数据类型转成字符串:基本数据类型+""

   基本数据类型.toString(基本数据类型值)

字符串转成基本数据类型xxx a = Xxx.parseXxx(String)

十进制转成其他进制toBinaryString()toHexString()toOctalString()

其他进制转成十进制parseInt(string,radix)

 

JDK1.5版本以后出现的新特性

Integer x=new Integer(4),可以如下书写

Integer x=4; //自动装箱,这里4为对象,为引用数据类型,类类型变量肯定指向对象,4等同于new Integer(4),不用显示做,会隐式帮你完成,简化书写

新特性中x除了可以取整数外还多了一个值nullInteger x=null,会运行失败(空指针异常),以后书写要进行判断

x=x+2;//可以直接进行运算。x+2:x进行自动拆箱,变成了int类型,和2进行加法运算,再将和进行装箱赋给x

当数值在byte范围(-128+127)内时,对于新特性,如果该数值已经存在,则不会再开辟新的空间


0 0
原创粉丝点击