您的位置:首页 > 职场人生

黑马程序员——String

2015-11-05 12:14 507 查看
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流!
-------
String类

字符串是一个特殊的对象

字符串一旦初始化就不可以被改变

★String s1 = “abc”;

         Strings2 = new String(“abc”);

         有什么区别?

         s1在内存中有一个对象

         s2在内存中有两个对象

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

         (1)获取

                   (1.1)字符串中的包含的字符数,也就是字符串的长度 int length()

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

                   (1.3)根据字符获取该字符在字符串中位置

                            intindexOf(int ch):返回的是ch在字符串中的第一次出现的位置

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

                            intindexOf(String str):返回的是str在字符串中的第一次出现的位置

                            int indexOf(String str,int fromIndex):从fromIndex制定位置开始,获取str在字符串中出现的位置

                            intlastIndexOf(String str):

         (2)判断

                   (2.1)字符串是否包含某一子串   contains(str)

                   (2.2)字符串中时候有内容   Boolean isEmpty()
                   (2.3)字符串是否是以指定内容开头  boolean startWidth(str)
                   (2.4) 字符串是否是以指定内容结尾booleanendWidth(str)
                   (2.5)判断字符串内容是否相同,复写了Object类中的equals方法
                   (2.6) 判断字符串内容是否相同 忽略大小写 booleanequalsIgnoreCase();
         (3)转换

                   (3.1)将字符数组转成字符串

                            构造函数:String(char[])

                                                 String(char[],offset,count)

                            静态方法:

                                               staticString copyValueOf(char[])

                                               staticString copyValueOf(char[] data,int offset,int count)

                                    

                                               staticString valueOf(char[])

                   (3.2)将字符串转成字符串数组

                                               char[]toCharAarray();

                   (3.3)将字节数组转成字符串

                                               构造函数:String(byte[])

                                                 String(byte [],offset,count)

 

                   (3.4)将字符串转成字节数组

                                               byte[]getBytes()

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

                            static  String valueOf(int)       static  StringvalueOf(double)       

★特殊:字符串和字节数组在转换过程中,是可以制定编码表的
         (4)替换

                   (4.1)Stringreplace(char oldchar,char new char)

         (5)切割

                   String[]split(regex);

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

                   Stringsubstring(begin);

                   Stringsubstring(begin,end)

         (7)转换:取出空格,比较

                   (7.1)将字符串转成大写或者小写

                            StringtoUpperCase();

                            StringtoLowerCase()

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

                            Stringtrim();

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

                            intcompareTo(String);  

●StringBuffer

    ◆字符串的组成原理就是通过该类实现的

    ◆StringBuffer可以对字符串内容进行增删

    ◆StringBuffer是一个容器

    ◆很多方法与String相同

特点:

    ◆StringBuffer是可变长度的

    ◆StringBuffer可以直接操作多个数据类型 

    ◆通过toString方法变成字符串

  ★(1)存储

        StringBufferappend():将制定数据作为参数添加到已有数据结尾处

        StringBufferinsert(index,数据)可以将数据插入到指定index指定位置

    (2)删除

        StringBufferdelete(start,end):删除缓冲区中的数据,包含start,不包含end

        StringBufferdeleteCharAt(index):删除指定位置的数据

    (3)获取

        charcharAt(int index)

        intindexOf(String str)

        intlastIndexOf(String str)

        intlength()

        Stringsubstring(int start,int end)

    (4)修改

        StringBufferreplace(start,end,string)

        voidsetCharAt(int index,char)

(5)反转

        StringBufferreverse()

(6)将缓冲区中指定数据存储到指定字符数组中

                   voidgetChars(int srcBegin,int srcEnd,char[] dst,int dstBegin)

JDK1.5版本之后出现了StringBuilder

StringBuffer是线程同步

StringBuilder是线程不同步的

 

*jdk升级原因 1提高效率2简化书写3提高安全性

●基本数据类型对象包装类

    byte    Byte

    short   Short

    int     Integer

    long    Long

    boolean     Boolean

    float   Float

    double  Double

    char    Character

 

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

就是用于基本数据类型和字符串类型之间做转换

 

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

         基本数据类型+“”

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

         如Integer.toString(34)

 

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

                   xxxa=xxx.parseXXX(“  ”);

                  

                   Integer i = new Integer("123");
       int intValue =i.intValue();

◆十进制转成其它进制

toBinaryString()

toHexString()

toOctalString()

其他进制转成十进制

parsrInt(“110”,10)

 

 

 

 

 

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

    自动装箱  自动拆箱

    Integerm = 128

    Integern = 128

    sop(“m==n:”+m==n);false

    Integera = 127

    Integerb = 127

    sop(“a==b:”+a==b);true

    因为当数值在byte范围内,对于新特性,如果该数值已经存在不会在开辟新的空间

public class StringDemo {
public static void main(String[] args) {
String s= "skkjkka";
System.out.println(reverseDemo(s,0,s.length()));
}
/*模拟一个trim方法,取出字符串两端的空格*/
private static String trimDemo(String s) {
int start=0;
int end=s.length()-1;
while(s.charAt(start)==' '&&start<=end){
start++;
}
while(s.charAt(end)==' '&&start<=end){
end--;
}
return s.substring(start,end+1);
}
/*将一个字符串反转,将字符串中指定部分进行反转*/
private static String reverseDemo(String s,int start,int end){
char[] arr = s.toCharArray();
char temp;
for (int i = start,j=end-1; i < j; i++,j--) {
temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
return new String(arr);
}

/*获取一个字符串在另外一个人字符串中出现的次数*/
private static String getCount(String s,String key){
int count=0;
int index=0;
while((index=s.indexOf(key,index))!=-1){
index=index+key.length();
count++;
}
System.out.println(count);
return s;
}
/*获取两个字符串中最大相同子串,第一个动作,将短的那个串进行长度一次递减的子串打印*/
private static String getMaxSubString(String s1,String s2){
String max="",min="";
max=(s1.length()>=s2.length())?s1:s2;
min=(max==s1)?s2:s1;
for (int i = 0; i < min.length(); i++) {
for (int j = 0,k=min.length()-i; k!=min.length()+1; j++,k++) {
String temp = min.substring(j,k);
if(max.contains(temp)){
return temp;
}
}
}
return "";
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java