目錄:
程序1:任意輸入一字符串,計算值。例如5*8*9*8-100+8=得到運行結果是2788
程序2:異常操作
程序3:文件讀取操作
/*任意輸入一字符串,計算值。例如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;
}
}
運行結果:
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運行結果:
/*文件讀操作,讀取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();
}
}
}
運行結果: