JAVA笔记22-常用类

一、String类

java.lang.String类代表不可变的字符序列

String类常见构造方法:(见API文档)

常用方法:

调用:toString()方法,存在多态!

举例:

 

练习题:

1、编写一个程序,输出一个字符串中的大写英文字母数,小写英文字母数和非英文字母数

法一:

public class Test{
    public static void main(String args[]){
        String s = "AaaadBFAa890Z*";
        int lCount=0;
        int uCount=0;
        int oCount=0;
        for(int i=0;i<s.length();i++){
            char c = s.charAt(i);
            if(c>='a'&&c<='z'){
                lCount++;
            }else if(c>='A'&&c<='Z'){
                uCount++;
            }else{
                oCount++;    
            }
        }
        System.out.println(lCount+" "+uCount+" "+oCount);
    }
}

法二:

public class Test{
    public static void main(String args[]){
        String s = "AaaadBFAa890Z*";
        String sL="abcdefghigklmnopqrstuvwxyz";
        //String sU="ABCDEFGHIGKLMNOPQRSTUVWXYZ";
        String sU=sL.toUpperCase();
        int lCount=0;
        int uCount=0;
        int oCount=0;
        for(int i=0;i<s.length();i++){
            char c = s.charAt(i);
            if(sL.indexOf(c)!=-1){
                lCount++;
            }else if(sU.indexOf(c)!=-1){
                uCount++;
            }else{
                oCount++;    
            }
        }
        System.out.println(lCount+" "+uCount+" "+oCount);
    }
}

法三:

public class Test{
    public static void main(String args[]){
        String s = "AaaadBFAa890Z*";
        int lCount=0;
        int uCount=0;
        int oCount=0;
        for(int i=0;i<s.length();i++){
            char c = s.charAt(i);
            if(Character.isLowerCase(c)){
                lCount++;
            }else if(Character.isUpperCase(c)){
                uCount++;
            }else{
                oCount++;    
            }
        }
        System.out.println(lCount+" "+uCount+" "+oCount);
    }
}

2、编写一个方法,输出在一个字符串中,指定字符串出现的次数

public class Test{
    public static void main(String args[]){
        String s = "javahjavajavadejavdajava";
        String sToFind="java";
        int count=0;
        int index;
        while( (index = s.indexOf(sToFind) ) != -1){
            s = s.substring(index+sToFind.length());
            count++;
        }
        System.out.println(count);
    }
}

 

二、StringBuffer类

java.lang.StringBuffer代表可变的字符序列。

StringBuffer和String类似,但StringBuffer可以对其字符串进行改变。

StringBuffer类的常见构造方法(见API文档)

常用方法:

举例:

三、基本数据类型包装类

包装类(如Integer,Double等)这些类封装了一个相应的基本数据类型数值,并为其提供了一系列的操作。

下面以java.lang.Integer为例,它的构造方法及其他方法(见API文档)

常用方法:

举例:

练习:编写一个方法,返回一个double型二维数组,数组中的元素通过解析字符串参数获得。如字符串参数:“1,2;3,4,5;6,7,8”,对应的数组为:

public class Test{
    public static void main(String args[]){
        String s = "1,2;3,4,5;6,7,8";
        double d[][];
        String s1[]= s.split(";");
        d = new double[s1.length][];
        for(int i=0; i<s1.length; i++){
            String s2[] = s1[i].split(",");
            d[i] = new double[s2.length];
            for(int j=0; j<s2.length; j++){
                d[i][j] = Double.parseDouble(s2[j]);
                //d[i][j] = Double.valueOf(s2[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();
        }
    }
}

 

四、Math类

java.lang.Math提供了一系列静态方法用于科学计算;其方法的参数和返回值类型一般为double型。

 举例:

 五、File类

java.io.File类代表系统文件名(路径和文件名)。

File类常见构造方法和方法(见API文档)

举例:

import java.io.*;
public class TestFile{
    public static void main(String args[]){
        String fileName = "myfile.txt";
        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();
            }
        }
    }
}

 注意:当class在某个包中的时候,getParentFile先找到最上层的包,再找包的上层路径

练习:(递归)编写一个程序,在命令行中以树状结构展现特定的文件夹及其子文件(夹)

import java.io.*;
public class FileTree{
    public static void main(String args[]){
        File f = new File("E:/javacode/20140424/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);
            }
        }
    }
}

六、枚举类型(1.5以后)

java.lang.Enum

枚举类型只能够取特定值中的一个。

举例:

public class TestEnum{
    public enum MyColor{red,green,blue};
    public static void main(String args[]){
        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);
    }
}
posted @ 2014-04-24 15:29  seven7seven  阅读(249)  评论(0)    收藏  举报