StackX类

public class StackX{
private int maxSize;
private char StackArray[];
private int top;
public StackX(int max){ //构造函数的定义
maxSize=max;
StackArray=new char[maxSize];
top=-1;
}
public void push(char j){ //字符压栈
StackArray[++top]=j;
}
public char pop(){ //字符弹出
return StackArray[top--];
}
public char seek(){ //查找
return StackArray[top];
}
public boolean isEmpty() //空栈判断
{
return top==-1;
}
}

Reverse反转类

public class Reverse{
private String input;
private String output;
public Reverse(String in){ //构造函数
input=in;
}
public String doRev(){ //反转功能函数 返回值为String
int stackSize=input.length();
StackX theStack=new StackX(stackSize);
for(int i=0;i<input.length();i++) //将输入的字符串压栈处理
{
char ch=input.charAt(i);
theStack.push(ch);
}
output="";
while(!theStack.isEmpty()){ //将栈中的字符逐一弹出,并被ouput接收,达到反转效果
char c=theStack.pop();
output+=c;
}
return output;
}
}

主函数,测试函数

import java.io.*;			//输入流头文件
public class ReseverApp {
public static void main(String []args) throws IOException{ //函数内含有IO输入流,不处理异常就要向上抛异常
String input,output;
while(true){ //输入多组数据
System.out.println("Enter a String ");
System.out.flush(); //清空缓存区
input=getString(); //调用输入流方法↓
if(input.equals("")) break;
Reverse rv=new Reverse(input);
output=rv.doRev();
System.out.println(output);
}
}
public static String getString ()throws IOException{ //输入流方法
InputStreamReader isr=new InputStreamReader(System.in); //用InputStreamReader声明接收器,从System.in(即控制台)输入
BufferedReader br=new BufferedReader(isr); //用BufferedReader包装InputStreamReader
String s=br.readLine(); //调用BufferedReader的readLine()方法进行读取字符串
return s;
}
}

系统自带的反转函数


public class Demo {
public static void main(String []args){
StringBuilder sb=new StringBuilder("中华人民共和国");
System.out.println(sb.reverse());
}
}

最新文章

  1. Visual Studio 技能GET
  2. JPA一对多循环引用的解决
  3. 方便!C++ builder快捷键大全
  4. 将FlashPlayerDebugger的trace()功能输出到日志
  5. Jmeter—5 关联 响应数据传递-正则表达式提取器
  6. c++程序编码
  7. geeksforgeeks@ Minimum sum partition (Dynamic Programming)
  8. JsRender
  9. XML Dtd Schema
  10. 关于ajax中async参数的感悟
  11. C# 常用参数
  12. 一个load飙高的过程分析,非常有价值(转)
  13. ubuntu 安装maven提示出错 The program &amp;#39;mvn&amp;#39; can be found in the following packages
  14. linux字符集介绍及解决中文乱码实战
  15. git怎样删除未监视的文件untracked files
  16. 【offer收割机必备】我简历上的Java项目都好low,怎么办?
  17. day14 生成器迭代器
  18. [USACO09HOL]假期绘画Holiday Painting
  19. vue 项目实战 (生命周期钩子)
  20. 编码标准:ASCII、GBK、Unicode(UTF8、UTF16、UTF32)

热门文章

  1. MySQL 5.6 GTID Replication
  2. 【jQuery源码】整体架构
  3. JS判断是否是数组的四种做法
  4. 基于 JDK 的动态代理机制
  5. 细说Redis(二)之 Redis的持久化
  6. vue按需引入element或mint
  7. es6中的Promise学习
  8. 30个极大提高开发效率的Visual Studio Code插件
  9. MAC下搭建个人博客
  10. 在JSP中获取oracle中的时间戳类型的字段并显示