bj java 初學2015-07-22

目錄:

程序1:任意輸入一字符串,計算值。例如5*8*9*8-100+8=得到運行結果是2788
程序2:異常操作
程序3:文件讀取操作


程序1代碼如下:

/*任意輸入一字符串,計算值。例如5*8*9*8-100+8=得到運行結果是2788
 * */
package com.day6_2015_07_21;
import java.util.Scanner;
public class Test_h_task_add {
    public static void main(String[] args)
    {
        Scanner scanner = new Scanner(System.in);
        String s = scanner.next();
        Test_h_myStack num = new Test_h_myStack();
        Test_h_myStackCh sign = new Test_h_myStackCh();
        String digit = "";
        for (int i = 0; i < s.length(); i++)
        {
            char c =s.charAt(i);
            if(Character.isDigit(c))
            {
                digit+=c;
            }else
            {
                num.push(Integer.parseInt(digit));
                if (c == '=') {
                    int after = num.pop();
                    int before = num.pop();
                    char top = sign.pop();
                    int result = yunsuan(before, top, after);
                    num.push(result);
                    if(sign.getIndex()==-1)
                    {
                        System.out.println(num.getTop());
                    }else
                    {
                        int after1 = num.pop();
                        int before1 = num.pop();
                        char top1 = sign.pop();
                        int result1 = yunsuan(before1, top1, after1);
                        System.out.println(result1);
                    }
                } else {
                    digit = "";
                    if (sign.getIndex() == -1) {
                        sign.push(c);
                    } else {
                        jisuan(num, sign, c);
                    }
                }
            }
        }


    }
    private static void jisuan(Test_h_myStack num, Test_h_myStackCh sign, char c) {
        if (sign.getIndex() == -1) {
            sign.push(c);
            return;         //
        }
        char top = sign.getTop();
        if (youxianji(c, top)) {
            sign.push(c);
        } else {
            top = sign.pop();
            int after = num.pop();
            int before = num.pop();
            int result = yunsuan(before, top, after);
            num.push(result);
            jisuan(num, sign, c);
        }
    }

    public static int yunsuan(int before, char c, int after) {
        int i = 0;
        switch (c) {
        case '+':
            i = before + after;
            break;
        case '-':
            i = before - after;
            break;
        case '/':
            i = before / after;
            break;
        case '*':
            i = before * after;
            break;
        default:
            break;
        }
        return i;
    }

    public static boolean youxianji(char c, char top) {
        if (c == '*' || c == '/') {
            if (top == '*' || top == '/') {
                return false;
            }
            return true;
        }
        return false;
    }
}
package com.day6_2015_07_21;
public class Test_h_myStackCh {
    private char[] array = new char[20];
    private int index = -1;
    public int getIndex()
    {
        return index;
    }
    public void push(char i)
    {
        index++;
        array[index]=i;
    }
    public char getTop()
    {
        return array[index];
    }
    public char pop()
    {
        char j = array[index];
        index--;
        return j;

    }
}
package com.day6_2015_07_21;
public class Test_h_myStack {
    private int[] array = new int[20];
    private int index = -1;
    public int getIndex()
    {
        return index;
    }
    public void push(int i)
    {
        index++;
        array[index]=i;
    }
    public int getTop()
    {
        return array[index];
    }
    public int pop()
    {
        int j = array[index];
        index--;
        return j;

    }

}

運行結果:

這裏寫圖片描述

這裏寫圖片描述


程序2代碼如下:

package com.day7_2015_07_22;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

public class Test_b_main1 {
    public static void main(String[] args) {
        Test_b_student student1 = new Test_b_student();
        Test_b_student student2 = new Test_b_student();
        student1.setId(1);
        student2.setId(1);
        System.out.println(student1.equals(student2));
        student1.setName("張三");
        System.out.println(student1.toString());
        Test_b_student student = null;
        try
        {
            System.out.println(student.getName());
        }catch(NullPointerException e)
        {
            e.printStackTrace();
            System.out.println("空指針異常");
        }
        System.out.println("程序繼續運行……");

        try {
            FileInputStream file = new FileInputStream("E://11.txt");
            file.read();
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            System.out.println("文件沒有發現異常");
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        System.out.println("程序go……");


    }



}
package com.day7_2015_07_22;
public class Test_b_main2 {
    public static void main(String[] args) {
        Test_b_teacher teacher = new Test_b_teacher();
        System.out.println("程序運行...");  
        try {
            teacher.setName("張三");
        } catch (Test_b_MyException e) {
            System.out.println("捕獲到異常");
            e.printStackTrace();
        }
        System.out.println("程序結束");
    }
}
package com.day7_2015_07_22;
public class Test_b_MyException extends Exception {
    @Override
    public void printStackTrace() {
        System.err.println("我的自定義異常");
        super.printStackTrace();
    }   
}
package com.day7_2015_07_22;
public class Test_b_student {
    private int id;
    private String name;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    @Override
    public boolean equals(Object obj) {
    if(obj!=null&&obj instanceof Test_b_student){
        return( (Test_b_student)obj).id==this.id;//this 指的是什麼?  this.id 和this.getId()一樣嗎?
    }                                           //this 是指equals前面那個對象(引用),因爲是在本類中所以可以使用this.id調用id
    return false;

    }
    @Override
    public String toString( ) {
        return this.name;
    }
}
package com.day7_2015_07_22;
public class Test_b_teacher {
    private int age;
    private String name;
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) throws Test_b_MyException {
        if(name.equals("張三")){
            throw new Test_b_MyException();
        }
        this.name = name;
    }
}

程序中需要創建名稱爲config.properties的配置文件,裏面的內容是print=hpp。

Test_b_Test_b_main2運行結果:
這裏寫圖片描述

Test_b_main2運行結果:
這裏寫圖片描述


程序3文件讀操作

/*文件讀操作,讀取E://ccg.txt這個文件,輸出文件中中的信息
 * */
package com.day7_2015_07_22;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
public class Test_c {
    public static void main(String[] args) {
        //IO操作
        File f = new File("E://ccg.txt");       
        try {

            FileInputStream fis = new FileInputStream(f);
            int readindex = 0;
                while(readindex!=-1)
                {
                    byte[] b = new byte[1000];
                    readindex = fis.read(b);
                    System.out.print(new String(b));
                }

        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

}

運行結果:
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章