import java.io.*;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main (String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
String str = "";
MyStack mystack = new MyStack(n);
while( (str = br.readLine()) != null){
if (str.startsWith("push")) {
mystack.push(Integer.parseInt(str.substring(5)));
} else if(str.startsWith("pop")) {
mystack.pop();
}else if(str.startsWith("top")){
mystack.top();
}
}
}
}
class MyStack{
private int [] arrs;
private int size=0;
public MyStack(Integer n){
this.arrs=new int [n];
}
/**push x:将 加x 入栈,保证 x 为 int 型整数
*/
public void push(Integer x){
arrs[size]=x;
size++;
}
/**pop:输出栈顶,并让栈顶出栈
*/
public void pop(){
if(size==0){
System.out.println("error");
return;
}
size--;
System.out.println(arrs[size]);
}
/**top:输出栈顶,栈顶不出栈
*/
public void top(){
if(size==0){
System.out.println("error");
return;
}
System.out.println(arrs[size-1]);
}
}
总结:此题复习的知识点
1、BufferedReader由Reader类扩展而来,提供通用的缓冲方式文本读取,而且提供了很实用的readLine,读取一个文本行,从字符输入流中读取文本,缓冲各个字符,从而提供字符、数组和行的高效读取。
2、BufferedReader和BufferedWriter为默认带有缓冲的字符输出输入流,因为有缓冲区所以效率比没有缓冲区的高。
3、InputStreamReader类是字节流通向字符流的桥梁,封装在InputStream里,它以较高级的方式,一次读取一个字符,以文本格式输入/输出。
4、①String 转int型:
Integer.parselnt
Eg:String str = "123";
int a = Integer.parseInt(str);
②int型转String
String.valueOf();
Eg: int a = 3;
String s=String.valueOf(a);
5、startsWith() 方法用于检测字符串是否以指定的前缀开始

京公网安备 11010502036488号