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() 方法用于检测字符串是否以指定的前缀开始