Java-栈的学习(字符串的反转)
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());
	}
}
												
											Java-栈的学习(字符串的反转)的更多相关文章
- 在java中如何实现字符串的反转
		
如 "abcdt" 反转之后是 "tdcba" 思路1: 运用递归的方法进行反转 假设反转方法为 reverseString(String str)1)当字符串 ...
 - Java实现一个字符串的反转
		
Java小程序实现字符串的反转: 方法一: public class reverseString { public static void main(String[] args) { String s ...
 - java之jvm学习笔记六-十二(实践写自己的安全管理器)(jar包的代码认证和签名) (实践对jar包的代码签名) (策略文件)(策略和保护域)  (访问控制器) (访问控制器的栈校验机制) (jvm基本结构)
		
java之jvm学习笔记六(实践写自己的安全管理器) 安全管理器SecurityManager里设计的内容实在是非常的庞大,它的核心方法就是checkPerssiom这个方法里又调用 AccessCo ...
 - 从几个sample来学习JAVA堆、方法区、JAVA栈和本地方法栈
		
最近在看<深入理解Java虚拟机>,书中给了几个例子,比较好的说明了几种OOM(OutOfMemory)产生的过程,大部分的程序员在写程序时不会太关注Java运行时数据区域的结构: 感觉有 ...
 - Java学习--Java 中基本类型和字符串之间的转换
		
Java 中基本类型和字符串之间的转换 在程序开发中,我们经常需要在基本数据类型和字符串之间进行转换. 其中,基本类型转换为字符串有三种方法: 1. 使用包装类的 toString() 方法 2. 使 ...
 - java之jvm学习笔记十三(jvm基本结构)
		
java之jvm学习笔记十三(jvm基本结构) 这一节,主要来学习jvm的基本结构,也就是概述.说是概述,内容很多,而且概念量也很大,不过关于概念方面,你不用担心,我完全有信心,让概念在你的脑子里变成 ...
 - 《深入理解Java虚拟机》学习笔记之内存分配
		
JVM在执行Java程序的过程中会把它所管理的内存划分若干个不同的数据区域,如下图: 大致可以分为两类:线程私有区域和线程共享区域. 线程私有区域 程序计数器(Program Counter Regi ...
 - 第65节:Java后端的学习之Spring基础
		
Java后端的学习之Spring基础 如果要学习spring,那么什么是框架,spring又是什么呢?学习spring中的ioc和bean,以及aop,IOC,Bean,AOP,(配置,注解,api) ...
 - 《深入理解Java虚拟机》学习笔记
		
<深入理解Java虚拟机>学习笔记 一.走近Java JDK(Java Development Kit):包含Java程序设计语言,Java虚拟机,JavaAPI,是用于支持 Java 程 ...
 - 《深入理解 Java 虚拟机》学习笔记 -- 内存区域
		
<深入理解 Java 虚拟机>学习笔记 -- 内存区域 运行时数据区域 主要分为 6 部分: 程序计数器 虚拟机栈 本地方法栈 Java 堆 方法区 如图所示: 1. 程序计数器(线程私有 ...
 
随机推荐
- android开发(1):底部导航条的实现 | navigation tab | activity的创建
			
底部导航条,在iOS中叫tabbar,在android中叫bottombar或bottom navigation,是一个常用的切换页面的导航条. 同样,如果有良好的第三方库,我们应该优先考虑,能用好别 ...
 - CSS兼容性(IE和Firefox)技巧
			
CSS对浏览器的兼容性有时让人很头疼,或许当你了解当中的技巧跟原理,就会觉得也不是难事,从网上收集了IE7,6与Fireofx的兼容性处理技巧并整理了一下.对于web2.0的过度,请尽量用xhtml格 ...
 - Failed to convert value of type 'java.lang.String' to required type 'java.time.LocalDate';
			
springboot jdbc查询使用LocalDate报:Failed to convert value of type 'java.lang.String' to required type 'j ...
 - python元祖操作和内置方法
			
1 元祖:元祖可以理解为一个不可变的列表 2 用途:用于存放多个值,当存放的多个值只有读的需求而没有改的需求时用元祖最合适 3 定义:在()内用逗号分隔开多个任意类型的值.注意:当只有一个元素的时候, ...
 - 《深入理解Java虚拟机》(二)Java虚拟机运行时数据区
			
Java虚拟机运行时数据区 详解 2.1 概述 本文参考的是周志明的 <深入理解Java虚拟机>第二章 ,为了整理思路,简单记录一下,方便后期查阅. 2.2 运行时数据区域 Java虚拟机 ...
 - ASP.NET Web API 启用跨域访问
			
自定义特性 要在WebApi中实现JSONP,一种方式是实现自定义特性 http://stackoverflow.com/questions/9421312/jsonp-with-asp-net-w ...
 - Spring的IOC/DI使用到的技术
			
一.了解Spring IOC/DI 1:Spring有两大核心技术,控制反转(Inversion of Control, IOC)/依赖注入(Dependency Injection,DI)和面向切面 ...
 - 2018-01-19 Xtext试用: 快速实现简单领域专用语言(DSL)
			
环境搭建 使用的Eclipse版本: Oxygen.1a Release (4.7.1a) Build id: 20171005-1200, 通过添加Xtext - Download上列出的Relea ...
 - 用PHP去掉文件头的Unicode签名(BOM)
			
<?php //此文件用于快速测试UTF8编码的文件是不是加了BOM,并可自动移除 //By Bob Shen $basedir="."; //修改此行为需要检测的目录,点表 ...
 - Ansible--常用模块使用
			
ansible命令解释 通过ansible命令执⾏的任务称为ad-hoc命令(任务),其实它是相对playbook⽽⾔的.通常,命令⾏⽤来实现ansible的批量管理功能,playbook⽤来实现批量 ...