2014-11-24 63 views
0

我想知道如何扭轉在java中 我已經做了簡單的部分用戶inputed字或字符串..使用堆棧結構扭轉一個字符串/字

import java.util.Scanner; 
public class Stack 
{ 
    public static void main(String args[]){ 
     System.out.println("Please enter a word to reverse: "); 
     Scanner sc=new Scanner(System.in); 
     String name=sc.nextLine(); 


    } 

    private int maxSize; // size of stack array 
    private long[] stackArray; 
    private int top; // top of stack 
    public Stack(int s) { // constructor 
     maxSize = s; // set array size 
     stackArray = new long[maxSize]; // create array 
     top = -1; // no items yet 
     }  
    public void push(long j) { // put item on top of stack 
     top++; 
     stackArray[top] = j; // increment top, insert item 
     } 
    public long pop() { // take item from top of stack 

     return stackArray[top--]; //access item, decrement top 
     } 
} 

這基本上只是發生在用戶輸入和什麼也不做(並有pop和push方法)

只是想知道,如果有人可以幫助我扭轉串讓我們說「你好」(記住其用戶提交的字符串不過)

任何幫助將不勝感激

+0

那麼,將單詞中的每個字符推入堆棧時會發生什麼? – Kayaman 2014-11-24 20:24:18

+0

你快到了!將「Hello」插入堆棧 - >'[H,e,l,l,o - >'。彈出堆棧中的每個元素,首先彈出「o」,然後是l,l,e,最後是H. – Maroun 2014-11-24 20:25:11

+0

您是否需要使用堆棧,因爲您可以使用StringBuilder.reverse ... – brso05 2014-11-24 20:25:55

回答

-3

您可以使用java的Stack集合,並且只需將每個字符都插入到它中。 然後彈出其中的每個人並連接它們,你會得到相反的單詞。

public static void main(String[] args) { 
    Stack<String> stack = new Stack<String>(); 
    StringBuilder stringBuilder = new StringBuilder(); 
    String word = "WORD"; 
    for (int i = 0; i < word.length(); i++) { 
     stack.push(word.substring(i,i+1)); 
    } 
    for (int i = 0; i < word.length(); i++) { 
     stringBuilder.append(stack.pop()); 
    } 
    System.out.println(stringBuilder.toString()); 
} 
+0

@Kayaman我知道如何實際上扭轉它... 它更多如何將字符串拆分爲字符來彈出它們等 – 2014-11-24 20:27:48

+0

有一點幫助,如果他問他自己已經想過了,沒有什麼不對。但是無論哪種方式,我都給你堆棧集合的答案,你必須用數組實現它,我只是給你一半的方式。 – 2014-11-24 20:28:48

+0

@luisdurazoa你爲他寫了代碼,這不是「一點幫助」。 – Kayaman 2014-11-24 20:30:54

2
  1. 你的long的堆棧,但你想要的char個堆棧。你會如何解決這個問題?
  2. 如果您將2個字符壓入堆棧,然後將它們彈出並將每個字符串依次追加到新字符串,會發生什麼?