Java基础--常用类(2)

来源:互联网 发布:pdf网络虚拟打印机 编辑:程序博客网 时间:2024/05/29 14:46
1.StringBuffer类​​
Java.lang.StringBuffer代表可变的字符序列​
StringBuffer和String类似,但StringBuffer可以对其字符串进行改变​,String类要是执行s1=s1+s2的语句,需要先分配一个空间让s1和s2都拷贝过去,在将s1指向这个区域,而StringBuffer则不需要。
StringBuffer类的常见构造方法:​
StringBuffer()                    创建一个不包含字符序列的空的StringBuffer对象​
StringBuffer(String str)    创建一个StringBuffer对象,包含与String对象str相同的字符序列​
StringBuffer常用方法:​

1.重载方法public StringBuffer append(…)

可以为该StringBuffer对象添加字符序列,返回添加后的该StringBuffer对象引用,例如:(String str)/(StringBuffer sbuf)/(char[] str)/(char[] str,int offset,int len)添加一个字符数组的一部分/(double d)/(Object obj)

2.重载方法public StringBuffer insert(…)

可以在该StringBuffer在指定位置插入字符序列,返回修改后的该StringBuffer对象引用,例如:​

public StringBuffer insert(int offset,String str)​
public StringBuffer insert(int offset,doublie d)……   …​
方法public Stringbuffer delete(int start,int end)可以删除从start开始到end-1为止的一段字符序列,返回修改后的该StringBuffer对象引用。​
3.和String类含义类似的方法:​
public int indexOf(Stirng str)​
public int indexOf(String str,int fromIndex)​
public String substring(int start)​
public Stirng substirng(int start,int end)​
public int length()​
方法public StringBUffer reverse()用于将字符序列逆序,返回修改后的该StirngBuffer对象引用。​

例:

public class TestStringBuffer {    public static void main(String agrs[]) {        String s = "Mircosoft";        char a[] = {'a', 'b', 'c'};        StringBuffer sb1 = new StringBuffer(s);        sb1.append('/').append("IBM").append('/').append("Sun");        System.out.println(sb1);        StringBuffer sb2 = new StringBuffer("数字");        for (int i = 0; i <= 9; i++) {            sb2.append(i);        }        System.out.println(sb2);        sb2.delete(8, sb2.length()).insert(0, a);        System.out.println(sb2);        System.out.println(sb2.reverse());    }}

结果:

Mircosoft/IBM/Sun
数字0123456789
abc数字012345
543210字数cba​
2.基础数据类型包装类​
包装类(如:Integer,Double等)这些类封装了一个相应的基本数据类型数值,将数据分配在堆空间上,并为其提供了一系列操作。​
以java.lang.Integer类为例,构造方法:​
Integer(int value)​
Integer(String s)​
包装类常见方法:以下方法以java.lang.Integer为例​
public static final int MAX_VALUE       最大的int型数(2的31次方-1)​
Public static final int MIN_VALUE        最小的int型数(-2的31次方)​
public long longValue()                         返回封装数据的long型值​
public double doubleValue                  返回封装数据的double型值​
public int intValue                                   返回封装数据的int型值​
public static int parseInt(String s)throws NumberFormatException            将字符串解析成int型数据,返回该数据​
public static Integer valueOf(String s)throws NumberFormatException    返回Interger对象,其中封装的整型数据为字符串s所表示​​
例如:
public class TestStringBuffer {    public static void main(String agrs[]) {        Integer i = new Integer(100);        Double d = new Double("123.456");        int j = i.intValue() + d.intValue();        float f = i.floatValue() + d.floatValue();        System.out.println(j);        System.out.println(f);        double pi = Double.parseDouble("3.1415926");        double r = Double.valueOf("2.0").doubleValue();        double s = pi * r * r;        System.out.println(s);        try {            int k = Integer.parseInt("1.25"); //只能把整数的字符串转换成整型        } catch (NumberFormatException e) {            System.out.println("数据格式不对");        }        System.out.println(Integer.toBinaryString(123) + "B");        System.out.println(Integer.toHexString(123) + "H");        System.out.println(Integer.toOctalString(123) + "O");    }}

结果是:

223   

223.456    

12.5663704       

 数据格式不对    

1111011B

7bH    

173O​

数组解析器代码:
public class ArrayParser {    public static void main(String[] args) {        double[][] d;        String s = "1,2;3,4,5;6,7,8";        String[] sFirst = s.split(";");        d = new double[sFirst.length][];        for (int i = 0; i < sFirst.length; i++) {            String[] sSecond = sFirst[i].split(",");            d[i] = new double[sSecond.length];            for (int j = 0; j < d[i].length; j++) {                d[i][j] = Double.parseDouble(sSecond[j]);            }        }        for (int i = 0; i < d.length; i++) {            for (int j = 0; j < d[i].length; j++) {                System.out.print(d[i][j] + " ");            }            System.out.println();        }    }}

结果是:
1.0 2.0
3.0 4.0 5.0
6.0 7.0 8.0
3.Math类
​java.lang.Math提供了一系列静态方法用于科学计算;其方法的参数和返回值类型一般为double型。​
abs绝对值        acos反余弦,asin,atan,cos,sin,tan​
sprt平方根        pow(double a,double b)a的b次幂​
log  自然对数         exp    e为底指数​
max(double a,double b)        min(double a,double b)​
random()返回0.0到1.0的随机数​
long round(double a) double型的数据a转换成long型(四舍五入)​
toDegrees(double angrad)弧度->角度​
toRadians(double angrad)角度->弧度​
Math.E是一个静态常量     e = 2.718281828459
4.File类​​
java.io.File类代表系统文件名(路径和文件名)​
public File (Stirng pathname)                  以pathname为路径创建File对象,如果pathname是相对路径,则默认的当前路径在系统属性user.dir中存储​
public File(String parent,Stirng child)     以parent为父路径,children为子路径创建File对象​
File的静态属性Stirng separator存储了当前系统的路径分隔符​
File类常用方法​
通过File对象可以访问文件的属性。​

public boolean canRead()            

public boolean canWrite()​

public boolean exists()              是不是存在          

public boolean isDirectory()      目录​

public boolean isFile()               文件名         

public boolean isHidden()        是不是隐藏的​

public long lastModified()          上次修改时间ms     

Public long length()​

public String getName()               

public String getPath()路径​

通过File对象创建空文件或目录(在该对象所指的文件或目录不存在的情况下)​
public boolean createNewFile() throws IOException​
public boolean delete()​
public boolean mkdir()​//创建路径
public boolean mkdirs()// 创建在路径中的一系列目录​
例如:import java.io.*;
public class TestFile {    public static void main(String[] args) {        String separator = File.separator;        String filename = "myfile.txt";        String directory = "mydir1" + separator + "mydir2";        //String directory = "mydir1/mydir2";        //String directory = "mydir1\\mydir2";        File f = new File(directory, filename);        if (f.exists()) {            System.out.println("文件名:" + f.getAbsolutePath());            System.out.println("文件大小:" + f.length());        } else {            f.getParentFile().mkdirs();            try {                f.createNewFile();            } catch (IOException e) {                e.printStackTrace();            }        }    }}

结果是:

文件名:C:\Users\Administrator\workspace\helloworld\mydir1\mydir2\myfile.txt​

文件大小:6


递归列出目录结构:

public class FileList {    public static void main(String[] args) {        File f = new File("d:/A");        System.out.println(f.getName());        tree(f, 1);    }    private static void tree(File f, int level) {        String preStr = "";        for (int i = 0; i < level; i++) {            preStr += " ";        }        File[] childs = f.listFiles();        for (int i = 0; i < childs.length; i++) {            System.out.println(preStr + childs[i].getName());            if (childs[i].isDirectory()) {                tree(childs[i], level + 1);            }        }    }}

结果是:
A
          B
                      E
                      F.txt
           C
           D.txt​​
5.Enum枚举类​​
枚举类型:只能够取特定值中的一个,使用enum关键字,是java.lang.Enum类型
定义一种新的类型不是变量就是一个类,然后在定义变量​
举例:
public class TestEnum {    public enum MyColor {red, green, blue};    public static void main(String agrs[]) {        MyColor m = MyColor.red;        switch (m) {            case red:                System.out.println("red");                break;            case green:                System.out.println("green");                break;            default:                System.out.println("default");        }        System.out.println(m);    }}

结果是:​
red​
red

0 0
原创粉丝点击