`
tonyJ
  • 浏览: 145493 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

用自定义栈去实现字符串反转

阅读更多
package date0610;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

/**
 *@author TonyJ
 *@time 2011-6-10 下午03:46:08
 */
public class Test02 {
	private char arr[];
	private int maxSize;
	private int top;

	public Test02(int s) {
		arr = new char[s];
		top = -1;
		maxSize = s;
	}

	public void push(char c) {//进栈
		arr[++top] = c;
	}

	public char pull() {//出栈
		return arr[top--];
	}

	public char peek() {//取得栈头数据
		return arr[top];
	}

	public boolean isEmpty() {//判断是否空
		return top == -1;
	}

	public boolean isFull() {//判断栈是否已满
		return top == maxSize - 1;
	}

	public static String getString() {//获得输入的字符串
		String str = null;
		BufferedReader br = null;
		br = new BufferedReader(new InputStreamReader(System.in));
		try {
			System.out.println("请输入字符串:");
			str = br.readLine();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return str;
	}

	public static String reverse() {
		String input = getString();
		String output="";
		Test02 t = new Test02(input.length());
		for (int i = 0; i < input.length(); i++) {
			t.push(input.charAt(i));
		}
		while (!t.isEmpty()) {
			output =output+ t.pull();
		}
		return output;
	}

	public static void main(String[] args) {
		System.out.println(reverse());
	}
}
分享到:
评论

相关推荐

    Java 实例 - 压栈出栈的方法实现字符串反转源代码-详细教程.zip

    本教程的详细资源包含在名为“Java实例 - 压栈出栈的方法实现字符串反转源代码-详细教程.rar”的压缩包中,涵盖了完整的Java源代码示例和详细的解释,非常适合初学者和有经验的开发者参考学习。通过学习这个实例,你...

    将一个字符串反转的方式

    这里我们将深入探讨如何在Java中实现字符串反转,同时也会涉及到字符串的基本原理和一些相关工具的使用。 首先,我们需要理解Java中的字符串。在Java中,字符串是由字符组成的不可变序列,通常表示为`String`类的...

    八种方法倒转字符串暂时

    2. **递归法**:通过递归调用来实现字符串反转,每次将第一个字符移到末尾,然后对剩余部分进行同样的操作。 3. **栈操作**:利用栈的后进先出(LIFO)特性,将字符串逐个字符入栈,再依次出栈得到反转的字符串。 ...

    JAVA课程设计(论文) 反转字符串

    这篇课程设计论文的主题围绕着如何在Java中实现字符串反转功能,这涉及到以下几个核心知识点: 1. **字符串基础知识**:Java中的字符串是不可变的,即创建后不能更改。字符串对象通常使用`String`类表示,而`...

    liw-modules-0_3.tar.gz_字符串处理

    描述提到这些源程序涉及到字符串处理、内存管理和错误处理等方面,提示用户可以通过阅读readme文件来了解如何使用这些程序。 在C语言中,字符串处理是非常基础且重要的部分,它包括对字符数组的操作,如创建、复制...

    StringProject

    这个文件可能是实现字符串反转功能的代码,可能包括多种不同的反转方法,如使用栈、双指针或者直接调用内置函数。 总的来说,"StringProject"这个项目提供了一个全面的字符串算法实践平台,涵盖了字符串搜索、反转...

    Java编程题.pdf

    这种方法展示了如何在Java中实现自定义的字符串操作。 3. 基于栈的字符串匹配: 这部分代码旨在实现一个简单的字符串匹配算法,尤其是针对特定模式如`?{ ?,? }?`。`StringMatch`类有一个`match()`方法,它使用栈...

    笔试中常见编程题.doc

    5. 字符串反转:可以使用两个指针,一个从头开始向后移动,一个从尾开始向前移动,交换对应位置的字符,直到两个指针相遇。 6. 自定义strcpy函数:复制字符串,确保目标字符串足够大以容纳源字符串,同时需要检查...

    AUTOIT_所有用户自定义函数文档.doc

    19. `_ArrayToString`:将数组转换为单个字符串,元素之间用指定的分隔符分隔。 20. `_ArrayTrim`:去除数组中所有元素的前导或尾随字符。 21. `_ArrayUnique`:返回一维数组中唯一的元素,去除重复项。 此外,...

    "C语言程序设计大赛”模拟题库

    15. 子串查找:使用KMP或朴素算法实现字符串查找,返回首次出现的位置。 16. 指定位置查找子串:在特定索引开始查找,返回子串首次出现的索引。 17. 连续座位分配:用二维数组模拟,使用二维数组的遍历和搜索算法...

    stack实现进制转换

    6. 反转该字符串,得到正确顺序的进制数。 在实际编码中,我们还需要考虑负数的进制转换,因为负数在不同的进制表示中可能会有特殊的符号。对于负数,我们通常转换其绝对值,然后再在其前面加上负号。 进制转换是...

    自定义 表达式 计算

    在实现自定义表达式计算时,我们需要构建一个解析器来解析用户输入的字符串表达式。这个解析器通常由词法分析器(lexer)和语法分析器(parser)组成。词法分析器将输入的字符串分解成一个个称为“标记”(tokens)...

    chf.rar_chf

    这里实现的功能是对包含空格的字符串进行单词级别的逆序操作,即将句子中的单词顺序反转,但保留每个单词内部的字符顺序不变。 【描述】中提到的具体示例是将句子"this is a string."逆序为"string a is this"。这...

    Java练习题,实用于Java大部分人群

    字符串反转 - **知识点**:反转字符串中的字符顺序。 - **实现方法**: - 使用循环和临时变量交换字符位置。 #### 47. 数组元素获取 - **知识点**:从数组中获取特定位置的元素。 - **实现方法**: - 使用下标...

    微软等公司数据结构+算法面试第1-100题汇总

    字符串操作通常涉及字符串反转、模式匹配等算法,可以通过双指针、滑动窗口等方法实现。 以上知识点是针对给定面试题目的解析,它们涵盖了数据结构(如二元查找树、栈、链表、数组)和算法(如动态规划、深度优先...

    [面试/笔试系列5]链表反转

    在 C++ 中,可以自定义一个字符串类来实现字符串的基本操作,如构造、复制、赋值等。这里给出一个简单的字符串类实现示例。 **2.2 成员函数实现** - **构造函数**:用于初始化字符串。 - **拷贝构造函数**:用于...

    剑指offer源代码

    5. **字符串处理**:字符串在面试中经常出现,涉及模式匹配、字符串反转、最长回文子串等问题。掌握KMP算法、Manacher's Algorithm等可以有效处理这类问题。 6. **图论算法**:包括最短路径问题(Dijkstra算法、...

    Java入职考试题.docx

    这可能涉及到栈(stack)数据结构,你可以考虑使用`java.util.Stack`类或者自定义一个栈结构。确保实现必要的方法,如`push()`, `pop()`, `peek()`, 和 `isEmpty()`等。 3. **打印数字金字塔** 这个任务需要你输出...

    华为与IBM等公司JAVA面试题大全

    1. 字符串操作:可以使用StringBuilder或StringBuffer类的reverse()方法实现字符串反转;替换操作可以通过replace()或replaceAll()方法完成。 2. 数据类型转换:使用Integer.parseInt()或Double.parseDouble()将字符...

Global site tag (gtag.js) - Google Analytics