首页 > 学院 > 开发设计 > 正文

Java基础--常用类(2)

2019-11-14 10:54:35
字体:
来源:转载
供稿:网友
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数字0123456789abc数字012345543210字数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.03.0 4.0 5.06.0 7.0 8.03.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.7182818284594.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


上一篇:单链表的基本操作

下一篇:图论

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表