黑马程序员------第9天笔记(String类和基本数据类型对象包装类)

---------------------- ASP.Net+Unity开发.Net培训、期待与您交流! ----------------------

1,String类概述

①    

String s1="abc";   s1是一个类类型变量,”abc”是一个对象,只要被“”都是对象。

s1=”kk”; s1指向另一个String类型变量。

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

 

②     Strings1="abc";

String s2=new String(“abc”);

 

System.out.println(s1==s2);                           //false;-->比较的是地址

          System.out.println(s1.equals(s2));   //true-->比较的是字符串

          Strings1="abc";                                 à在内存中有一个对象

String s2=new String(“abc”);                  à在内存中有两个对象。

          s1和s2的区别:

          s1有一个对象

          s2有两个对象

 

2,String类中常见的方法

 

①     

                    Strings1=”abc”;

String s2=”abc”;

System.out.println(s1==s2);//true

 

“abc”存在于常量池中s2发现”abc”已经在内存空间后就不会再开辟空间所以s1 s2有相同的地址。

②    常见的操作:

“abcd”

1, 获取

1.1   字符串的长度     int  length()  数组中是没有括号的,是数组的属性

1.2   根据位置,获取位置上的某个字符  char  charAt(int index)

1.3   根据字符获取位置

int  indexOf (int ch)接收的是ASCII码,返回ch第一次出现的位置

int  indexOf (int ch,intfromIndex)从指定位置开始获取ch在字符串中出现的位置

int  indexOf (String str)接收的是ASCII码,返回ch第一次出现的位置

int  indexOf (Stringstr,int fromIndex)从指定位置开始获取ch在字符串中出现的位置

如果没有找到就会返回-1

lastInsexOf()……..同理但是角标是不会改变的

2, 判断

2.1 字符串中是否包含某一个子串。boolean contains()

特殊之处:indexOf(Str) 有:第一次位置, 无:-1  à可以用于判断包含关系。而且该方法既可以判断,也可以获取位置。

2.2字符串中是否有内容                   boolean isEmpty ()

2.3字符串是否以指定内容开头    boolean startsWith()

2.4字符串是否以指定内容结尾    boolean endsWith()

2.5判断字符串内容是否相同      boolean  equals()

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

3,转换

3.1  将字符数组转成字符串。 

构造函数:String(char[] chs) String(char[] , int  offset, intcount)

静态方法:static String copyValueOf(char[]  arr);

                     static String copyValueOf(char[] arr, intoffset, int count);

3.2  将字符串转成字符数组

                                         char[]   toCharArray()

3.3  将字节数组转成字符串

                                         String(byte[]chs)     String(byte[] , int offset, intcount)

3.4  将字符串转成字节数组

 

3.5将基本数据类型转成字符串

                                         StringvalueOf(int)

                                         StringvalueOf(double)

                                         3+”abc”

4,替换

4.1替换    String     replace(char oldChar,char newChar)

           

5,切割

           String[]  split(regex)  例:String[] arr=s.split(",");

6,子串

           Stringsubstring(int beginIndex);

           Stringsubstring(int beginIndex,int endIndex);à包含头不包含尾

 

7,转换,去除空格,比较

           7.1将字符串转换成大写或者小写。

                     StringtoUpperCase()

                     StringtoLowerCase()

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

                     Stringtrim()只能去除头尾的空格

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

                     intcompareTo(String)

3,StringBuffer

       String对象一旦初始化不能被改变,而StringBuffer可以用于对字符串的修改。

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

 

特点:

1, 长度可以改变

2, 可以字节操作多种数据类型

3, 最终通过toString()方法变成字符串

 

 

1,增

① StringBuffer  append():

将指定数据作为参数存储到已有数据结尾处。à返回的都是同一个容器

② StringBuffer  insert(index,数据)

可以将数据插入到指定index位置

 

StringBuffer sb=new StringBuffer();

StringBuffer sb1=sb.append(34);

                            sop(sb.toString());

sop(sb1.toString());

          sop(sb==sb1);  //true

2,删

StringBufferdelete(int start,int end);  包含头不包含尾

 

sb.delete(0,sb.length());//清空缓冲区

 

StringBuffer deleteCharAt(int index);

 

3,改

StringBuffer  replace(int start, int end, String str)

 

void setCharAt(int index,char ch);

4,查

 

char  charAt(int index)

int  indexOf(String str)

int  lastIndexOf(String str)

int  length()

String substring(int start,int end)

5, 反转

StringBufferreverse()

 

6, 将缓冲区中的数据存入到指定数组中指定的位置

voidgetChars(int start,int end,char[] chs,int start)

基本数据类型对象包装类

1,

byte      Byte

short     short

int        Integer

long       Long

 

Boolean    Boolean

 

float       Float

double     Double

 

char       Character

 

2,基本数据类型对象包装类最常见作用

 

              用于基本数据类型和字符串类型之间的转换。

 

①   基本数据类型转成字符串

基本数据类型+” ”

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

如:Integer.toString(34);  将整数34变成字符串”34”

②   字符串转成基本数据类型

 

基本数据类型包装类.parse基本数据类型(”数值”)

int num1=Integer.parseInt("123727");

long num2=Long.parseLong("123727872872878");

③   进制之间的转换

 

toBinaryString()

toHexString()

toOctalString()

 

parseInt(“123”,10)   后面那个10是说明“”里的数字是什么进制的。

 

3,JDK1.5后的新特性

              Integer x=new Integer(4);

                   Integer  x=4;//新特性  4是对象à自动装箱

                   x=x+2;              //直接进行运算à自动拆箱

 

                   Integer  x=null;

 

                  

                   Integer m=128;

                   Integer n=128;

                   sop(m==n);//false

                   Integer p=127;

                   Integer q=127;

                   sop(p==q);//true

 

                   当数值在byte范围内时,对于新特性,不会再开辟新的空间所以为127

                   而128时为false


---------------------- ASP.Net+Unity开发.Net培训、期待与您交流! ----------------------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值