Java语言学习(3)-Java中基础封装类(数据类型封装类、数学运算类、字符类、字符串类)

一、NumberMath封装类

Java内置了基本数据类型(boolean、char、byte、short、int、long、float、double),但是我们在编码更多的是使用对象、而不是内置数据类型。java中对内置数据类型封装了封装类,包含在java.lang包。Number是一个抽象类,如下封装类是Number类的子类:

  1)       Byte

  2)       Short

  3)       Integer

  4)       Long

  5)       Float

  6)       Double

  举例:

  Integer i = 10;

  i = i + 1;

当内置数据类型被当成对象使用时,编译器会对内置类型装箱成封装类。相似的,编译器也可以把一个对象拆解成内置数据类型,称之为拆箱。

如上例子:当i被赋值时,由于i是一个对象,所以编译器对i进行装箱。然后,为了给i进行加运算,编译器需要对i进行拆箱。

 

Number封装类常用的方法:

  1)       xxxValue()

    把number对象转换为xxx内置数据类型返回。byteValue()、shortValue()、intValue()、longValue()、floatValue()、doubuleValue()。样例:

      Integer i = 5;

           float f = i.floatValue();

  2)       compareTo()

    public int compareTo( NumberSubClass referenceName )

    referenceName:可以是一个 Byte、Double、Integer、Float、Long或Short类型的参数。

    返回值:相等则,返回0;小于参数,则返回-1;大于参数,则返回1。样例:

      Integer i = 5;

      Float f = 5.43;

           int ret1 = i.compareTo(f);

           int ret2 = i.compareTo(4);

  3)       equals()

    public boolean equals(Object o)

    o:任何对象。

    Number 对象不为 Null,且与方法的参数类型与数值都相等返回 True,否则返回 False。样例:

      Integer i = 5;

      Short a = 5;

           System.out.println(i.equals(a));

  4)       toString()

    String toString()

    static String toString(int i)

    返回一个字符串表示的 Number 对象值。

    样例:

      Integer a = 100;

      System.out.println(a.toString());

      System.out.println(Integer.toString(100));

  5)       valueOf()

    static Integer valueOf(int i)

    static Integer valueOf(String s)

    static Integer valueOf(String s, int radix)

    返回给定参数的原生 Number 对象值,也支持Double等其他基础封装类对象。

    i:整数值。

    s:Integer类型对象的字符串。

    radix:解析s字符串时的使用的基数,即进制。

    样例:

      Integer a = Integer.valueOf(100);

      Integer b = Integer.valueOf(“99”);

      Integer b = Integer.valueOf(“1ABD”, 16);//16机制的1ABD

      Double d = Double.valueOf(“2.15143”);

  6)       parseInt()

    static int parseInt(String s)

    static int parseInt(String s, int radix)

    将字符串参数返回为基础数据类型。也支持double等其他基础封装类对象。

    样例:

      int a = Integer.parseInt(“100”);

      int b = Integer.parseInt(“444”, 8);//8机制的444

      double d = Double.parseInt (“2.15143”);

 

Math封装类常用的方法:

  Math类包含了执行基本数学运算的属性和方法,如三角函数、指数、对数、开方等。更多Math的方法:

  1)       abs() 返回参数的绝对值

    double abs(double d)

    float abs(float f)

    int abs(int i)

    long abs(long lng)

    样例:

      int a = Match.abs(“-100”);

  2)       ceil() 返回大于等于参数的最小整数

    double ceil(double d)

    double ceil(float f)

    样例:

      double a = Match.ceil(5.5); //结果为6

  3)       floor() 返回小于等于参数的最大整数

    double floor(double d)

    double floor(float f)

    样例:

      double a = Match.floor(5.5); //结果为5

  4)       rint() 返回与参数最接近的整数

    double rint(double d)

    样例:

      double a = Match.ceil(5.6);//结果为6

      double a = Match.ceil(5.5);//结果为5

  5)       round() 四舍五入算法

    long round(double d)

    int round(float f)

    样例:

      long a = Match.round(5.5);//结果为6

  6)       min() max() 返回参数中的最大、最小值

    double min(double arg1, double arg2)

    float min(float arg1, float arg2)

    int min(int arg1, int arg2)

    long min(long arg1, long arg2)

    double max(double arg1, double arg2)

    float max(float arg1, float arg2)

    int max(int arg1, int arg2)

    long max(long arg1, long arg2)

    样例:

      System.out.println(Math.max(12.123, 18.456))

  7)       random()

    static double random()

    返回一个随机数

    样例:

      System.out.println(Math.random())

  8)       sin() cos() tan() asin() acos() atan()返回正舷、余弦、正切、反正舷、反余弦、反正切值

    double sin(double d)

    double cos(double d)

    double tan(double d)

    double asin(double d)

    double acos(double d)

    double atan(double d)

  9)       次方、开方

    double exp(double d)  e的参数次方

    double sqrt(double d)  参数的算数次方根

    double pow(double base, double exponent)  base的exponent次方根

 

二、字符封装类

Java中字符的封装类为Character,Character中封装了一个基本类型char的值。

创建Character对象:Character ch = new Character('a');

Character对象同样有封箱、拆箱过程: Character ch = ‘a’;由于ch是个对象,对基本类型的’a’进行封箱。

 

Character的常见方法:

  1)       isLetter() 是否是一个字母

    boolean isLetter(char ch)

    样例:

           System.out.println(Character.isLetter(‘H’));

  2)       isdigit() 是否是一个数字

    boolean isLetter(char ch)

    样例:

           System.out.println(Character.isdigit(‘H’));

  3)       isWhitespace() 是否是一个空格

    boolean isWhitespace(char ch)

  4)       isUpperCase() 是否是大写字母

    boolean isUpperCase(char ch)

  5)       isLowerCase() 是否是小写字母

    boolean isLowerCase(char ch)

  6)       toUpperCase() 指定字母的大写形式

    char toUpperCase(char ch)

    样例:

           System.out.println(Character.toUpperCase(‘a’));

  7)       toLowerCase() 指定字母的小写形式

    char toLowerCase(char ch)

  8)       toString() 返回字母的字符串形式,字符串长度为1

    String toString(char ch)

 

三、字符串封装类:StringStringBuffer

Java中提供了字符串的封装类String。一旦创建了String对象(构造函数初始化),那它的值就无法改变了。如果需要对字符串做修改,只能通过StringBuffer和StringBulder类和方法。

1、 String类

   String类包含多种构造方法。如:

        String tempString = “Hello World!”;

 

        char[] helloArray = {‘H’,’e’,’l’,’l’,’o’};

        String tempString  =  new String(helloArray);

      

       String类的常见方法:

    1)       String.length() 返回字符串长度

      样例:

             String tempString = “Hello World!”;

             System.out.pringln(tempString.length());

    2)       string1.concat(string2) 字符串拼接。

      样例:

             String tempString1 = “Hello”;

             String tempString2 = “World!”;

            System.out.pringln(tempString1.concat(tempString2));

      更常见的使用方式是String1 + Sting2

      样例:

             String tempString1 = “Hello”;

             String tempString2 = “World!”;

             System.out.pringln(tempString1 + “ ” + tempString2);

    3)       String.format() 返回指定格式化的字符串

      样例:

             String tempString;

        tempString = String.format(“整数是:%d,字符串是:%s”, 100, “hello”)

    4)       char charAT(int index) 返回字符串index位置的字符,返回值类型为char基础类型

      样例:

             String tempString = “Hello World!”;

             char ch = tempString.charAT(6);   //返回结果是W字符

    5)       int compareTo(String string2) 按字典序比较两个字符串

      样例:

             String tempString1 = “Hello”;

             String tempString2 = “HeLLo!”;

             System.out.pringln(tempString1.compareTo(tempSting2)); //逐个按照字典序比较字符,此字符串大于参数的字符串,返回>0的数;相等返回0。

    6)       intCompareTolgnoreCase(String string2)  按字典序比较两个字符串,忽略大小写

    7)       String concat(String string2) 把参数字符串拼接到末尾

      样例:

             String tempString1 = “Hello ”;

             String tempString2 = “World!”;

             System.out.pringln(tempString1.concat(tempString2));

    8)       copyValueOf() 把char数据中指定序列转换为字符串

      static String copyValueOf(char[] data)

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

      样例:

             char[] helloArray = {‘H’,’e’,’l’,’l’,’o’};

             System.out.pringln(copyValueOf(hellArry, 2, 4));  //函数返回字符串是“llo”

    9)       boolean endsWith(String tempString)  判断字符串是否以指定后缀结束

      样例:

             String tempString = “Hello World!”;

             System.out.pringln(tempString.endsWith(“ld”));

    10)    startsWith()判断字符串是否以指定前缀开始

      boolean startsWith(String prefix)

      boolean startsWith(String prefix, int toffset)  //其中toffset指定字符串中开始查找的位置

    11)    indexOf() 返回指定 字符/字符串 在字符串中首次/最后一次出现的索引

      int indexOf(int ch)

      int indexOf(int ch, int fromIndex)   //fromIndex可以字符串开发搜索的位置索引

      int indexOf(String str)

      int indexOf(String str, int fromIndex)

      int lastIndexOf(int ch)

      int lastIndexOf (int ch, int fromIndex)

      int lastIndexOf (String str)

      int lastIndexOf (String str, int fromIndex)

       样例:

             String tempString = “Hello World!”;

             System.out.pringln(tempString.indexOf (“or”, 5));

    12)    String replace(char oldChar, char newChar) 把字符串中所有oldChar字符替换成newChar字符

      样例:

             String tempString = “Hello World!”;

             System.out.pringln(tempString.replace(‘o’, ‘T’));

    13)    根据正则表达式操作字符串

      String replaceAll(String regex, String replacement)   替换字符串中所有匹配regex正则表达式的子串

      String replaceFirst(String regex, String replacement)   替换字符串中所有匹配regex正则表达式的第一个子串

      String[] split(String regex)   根据正则表达式拆分此字符串

      String[] split(String regex, int limit)   根据正则表达式拆分此字符串,limit指定分割的份数

      样例:

             String tempString = “Hello World!”;

             System.out.pringln(tempString.replaceFirst(“or(\\.\\*)”,“AA”));  //替换后的内容Hello WAA

 

             String tempString = “Hello World!”;

             String[] resultString = tempString.replaceFirst(“\\.{1}o”);  //表达式意思是o前1个任意字符

    14)    substring() 指定索引返回子字符串

      String substring(int beginIndex)

      String substring(int beginIndex, int endIndex)

    15)    char[] toCharArray() 把字符串转换为数组

      样例:

             String tempString = “Hello World!”;

             char[] strChar = tempString.toCharArray();

    16)    大小写转换

      String toLowerCase()

      String toLowerCase(Locale locale)   //locale参数为指定的规则

      String toUpperCase()

      String toUpperCase(Locale locale)

    17)    String toString()  返回对象自身

 

2、 StringBuffer和StringBuilder类

  和String类不同,StringBuffer和StringBuilder类的对象内容能够被多次修改,并且不产生新的未使用对象。

  StringBuilder类是java5后提出的。StringBuffer和StingBulider的最大不同是,StringBuilder的方法不是线程安全的。

  由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。然而在应用程序要求线程安全的情况下,则必须使用 StringBuffer 类。

 

  StringBuffer的方法:

    1)       public StringBuffer append(String s) 将指定的字符串追加到此字符序列

    2)       public StringBuffer reverse() 将StringBuffer对象内容进行反转形式替代

    3)       public delete(int start, int end) 移除字符串中指定位置内容

    4)       public insert(int offset, int i) 将int参数的字符串表示插入指定位置

    5)       public replace(int start, int end, String str) 指定位置替换为指定字符串

    6)       int capacity() 返回当前容量

    7)       char charAt(int index)  返回指定序列位置的字符

    8)       void ensureCapacity(int minimumcapacity)  确保容量最小等于指定值

    9)       void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)  复制指定序列内容到字符数组

    10)    int indexOf(String str)  int indexOf(String str, int fromIndex) 返回首次出现指定子字符串的索引

    11)    int lastIndexOf(String str)  int lastIndexOf (String str, int fromIndex) 返回最后一次出现指定子字符串的索引

    12)    int length()  返回字符串长度

    13)    void setCharAt(int index, char ch)  替换指定位置的字符

    14)    void setLength(int newLength)  设置字符序列长度

    15)    CharSequence subsequence(int start, int end)  指定位置返回一个新的字符许雷

    16)    String substring(int start) String substring(int start, int end) 指定开始位置返回新的子字符串String对象

    17)    String toString()  返回字符串自身的String对象

猜你喜欢

转载自www.cnblogs.com/yickel/p/11830449.html