黑马程序员 Java常用类(String,StringBuffer,其他类)

来源:互联网 发布:地图标识软件 编辑:程序博客网 时间:2024/05/18 03:33

------- android培训、java培训、java学习型技术博客、期待与您交流! ----------



String类

       String是java中的字符串。

       String对象是System.Char 对象的有序集合,用于表示字符串。

       String对象的值是该有序集合的内容,并且该值是不可变的。

 

String最大的特点

       String类是不可变的,对String类的任何改变,都是返回一个新的String类对象。

 

String类是用于描述字符串的类。

它提供了多个方法对字符串进行操作。

       1,获取。

              1.1字符串中的包含的字符数,也就是字符串的长度。

                     intlength():获取长度。

              1.2根据位置获取位置上某个字符。

                     charcharAt(int index):

              1.3根据字符获取字符在字符串中第一次出现的位置。

                     intindexOf(int ch):

                     intindexOf(int ch, int fromIndex):从fromIndex指定位置开始获取

                     intindexOf(String str):

                     intindexOf(String str, int fromIndex):从fromIndex指定位置开始获取

              1.4根据字符获取字符在字符串中最后一次出现的位置。

                     intlastIndexOf(int ch):

                     intlastIndexOf(int ch, int fromIndex) 从fromIndex指定位置开始获取

                     intlastIndexOf(String str)

                     intlastIndexOf(String str, int fromIndex) 从fromIndex指定位置开始获取

              1.5获取字符串中一部分字符串。也叫子串.

                    Stringsubstring(int beginIndex, int endIndex) 包含begin 不包含end

                    Stringsubstring(int beginIndex);

      

       2,判断。

              2.1字符串中是否包含某一个子串。

                     booleancontains(str):

                            也可以使用indexOf(str),

                            if(str.indexOf("abc")!=-1)既可以判断是否包含,又可以获取出现的位置。

              2.2字符中是否有内容。

                     booleanisEmpty(): 原理就是判断长度是否为0.

              2.3字符串是否是以指定内容开头。

                     booleanstartsWith(str);

              2.4字符串是否是以指定内容结尾。

                     booleanendsWith(str);

              2.5判断字符串内容是否相同。 复写了Object类中的equals方法。

                     booleanequals(str);

              2.6判断内容是否相同,并忽略大小写。

                     booleanequalsIgnoreCase();

      

       3,转换。

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

                     构造函数:String(char[])

                                     String(char[],offset,count):将字符数组中的一部分转成字符串。

                     静态方法:static StringcopyValueOf(char[]);

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

                                     static String valueOf(char[]):

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

                     char[]toCharArray():

              3.3将字符串转成字节数组。

                     byte[]  getBytes():

              3.4将字节数组转成字符串。

                     String(byte[])

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

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

                     staticString valueOf(int)

                     staticString valueOf(double)

                     //简单方法:3+"";

 

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

 

       4,替换

              Stringreplace(oldchar,newchar);

 

       5,切割

              String[]split(regex);

 

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

              Stringsubstring(begin);

              Stringsubstring(begin,end);

 

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

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

                      String toUpperCase();

                      String toLowerCase();

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

                     Stringtrim();

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

                     intcompareTo(string);

 

StringBuffer

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

       特点:

       1,长度是可变化的。

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

       3,最终会通过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 ch) ;

       5,反转。

              StringBufferreverse();

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

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

 

StringBuilder   

       JDK1.5版本之后出现了StringBuilder.

       StringBuffer是线程同步。

       StringBuilder是线程不同步。

       以后开发,建议使用StringBuilder

       升级三个因素:

       1,提高效率。

       2,简化书写。

       3,提高安全性。

 

基本数据类型对象包装类

       byte    Byte

       short       short

       int      Integer

       long   Long

       boolean  Boolean

       float   Float

       double     Double

       char   Character

 

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

 

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

       基本数据类型+""

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

       如: Integer.toString(34);//将34整数变成"34";

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

       xxxa = Xxx.parseXxx(String);

       inta = Integer.parseInt("123");

       doubleb = Double.parseDouble("12.23");

       booleanb = Boolean.parseBoolean("true");

       Integeri = new Integer("123");

       intnum = i.intValue();

十进制转成其他进制。

       toBinaryString();

       toHexString();

       toOctalString();

其他进制转成十进制。

       parseInt(string,radix);

 

 

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

 基本数据的自动拆箱与装箱:

class IntegerDemo1{       publicstatic void main(String[] args)       {                           //Integerx = new Integer(4);               Integerx = 4;// x自动装箱的过程就是:newInteger(4)               x= x + 2;// x自动拆箱,拆箱方法:x.intValue();x变成了int类型。和2进行加法运算,再将和进行装箱赋给x。                           Integerm = 128;              Integern = 128;               sop("m==n:"+(m==n));//结果为false。因为超出了范围                                                 /*当数值在byte(-127~128)范围内,对于新特性,                                                 如果该数值已经存在,则不会在开辟新的空间。*/              Integera = 127;              Integerb = 127;               sop("a==b:"+(a==b));//结果为true。因为a和b指向了同一个Integer对象。                                               }} 

 

System类

       在System类提供的设施中,有标准输入、标准输出和错误输出流;对外部定义的属性和环境变量的访问;

       加载文件和库的方法;还有快速复制数组的一部分的实用方法。

 

       System类中的方法和属性都是静态的。

       out:标准输出,默认是控制台。

       in:标准输入,默认是键盘。

 

       获取系统属性信息:Properties getProperties();

  示例代码:

import java.util.*;class SystemDemo{       publicstatic void main(String[] args)       {              Propertiesprop = System.getProperties();                           //因为Properties是Hashtable的子类,也就是Map集合的一个子类对象。              //那么可以通过map的方法取出该集合中的元素。              //该集合中存储都是字符串。没有泛型定义。                    //如何在系统中自定义一些特有信息呢?              System.setProperty("mykey","myvalue");               //获取指定属性信息。              Stringvalue = System.getProperty("os.name");               System.out.println("value="+value);               //可不可以在jvm启动时,动态加载一些属性信息呢?              Stringv = System.getProperty("haha");               System.out.println("v="+v);               /*              //获取所有属性信息。              for(Objectobj : prop.keySet())              {                     Stringvalue = (String)prop.get(obj);                      System.out.println(obj+"::"+value);              }              */       }} 


Runtime类

       每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接。

       可以通过 getRuntime 方法获取当前运行时。 

 

       该类并没有提供构造函数。

       但是发现该类中还有非静态方法。

       说明该类肯定会提供了方法获取本类对象。而且该方法是静态的,并返回值类型是本类类型。

       由这个特点可以看出该类使用了单例设计模式完成。

       该方式是static Runtime getRuntime();

  示例代码:

class RuntimeDemo{       publicstatic void main(String[] args) throws Exception       {              //获得Runtime对象              Runtimer = Runtime.getRuntime();              //调用方法,通过记事本打开SystemDemo.java文件              Processp = r.exec("notepad.exe SystemDemo.java");                           //Thread.sleep(4000);              //p.destroy();杀掉进程       }}  Date类       类 Date 表示特定的瞬间,精确到毫秒。 import java.util.*;import java.text.*;class DateDemo{       publicstatic void main(String[] args)       {              Dated = new Date();              System.out.println(d);//打印的时间看不懂,希望有些格式。               //将模式封装到SimpleDateformat对象中。              SimpleDateFormatsdf = new SimpleDateFormat("yyyy年MM月dd日E hh:mm:ss");                           //调用format方法让模式格式化指定Date对象。              Stringtime = sdf.format(d);               System.out.println("time="+time);               longl = System.currentTimeMillis();               Dated1 = new Date(l);               System.out.println("d1:"+d1);       }}


Calendar类

       Calendar对象能够生成为特定语言和日历风格实现日期-时间格式化所需的所有日历字段值。

  示例代码:

/*两个练习:1,获取任意年的二月有多少天。       思路:根据指定年设置一个时间就是       c.set(year,2,1)//某一年的3月1日。       c.add(Calenar.DAY_OF_MONTH,-1);//3月1日,往前推一天,就是2月最后一天。 2,获取昨天的现在这个时刻。       c.add(Calenar.DAY_OF_MONTH,-1);*/import java.util.*;class CalendarDemo2{       publicstatic void main(String[] args)       {               Calendarc = Calendar.getInstance();               //c.set(2012,2,23);               c.add(Calendar.DAY_OF_MONTH,-18);                           printCalendar(c);       }        publicstatic void printCalendar(Calendar c)       {              String[]mons = {"一月","二月","三月","四月"                                   ,"五月","六月","七月","八月"                                   ,"九月","十月","十一月","十二月"};                String[]weeks = {                                          "","星期日","星期一","星期二","星期三","星期四","星期五","星期六",                                                 };                        intindex = c.get(Calendar.MONTH);               intindex1 = c.get(Calendar.DAY_OF_WEEK);               sop(c.get(Calendar.YEAR)+"年");              //sop((c.get(Calendar.MONTH)+1)+"月");              sop(mons[index]);              sop(c.get(Calendar.DAY_OF_MONTH)+"日");              //sop("星期"+c.get(Calendar.DAY_OF_WEEK));              sop(weeks[index1]);       }       publicstatic void sop(Object obj)       {              System.out.println(obj);       }}

 

Math类

       Math类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。

  示例代码:

import java.util.*;class MathDemo{       publicstatic void main(String[] args)       {               Randomr = new Random();              for(intx=0; x<10; x++)              {                     //intd = (int)(Math.random()*10+1);                     intd = r.nextInt(10)+1;                     sop(d);              }           }        publicstatic void show()       {              doubled = Math.ceil(16.34);//ceil返回大于指定数据的最小整数。              doubled1 = Math.floor(12.34);//floor返回小于指定数据的最大整数。               longl = Math.round(12.54);//四舍五入              sop("d="+d);              sop("d1="+d1);              sop("l="+l);               doubled2 = Math.pow(2,3);              sop("d2="+d2);       }       publicstatic void sop(Object obj)       {              System.out.println(obj);       }}



------- android培训、java培训、java学习型技术博客、期待与您交流! ----------
原创粉丝点击