这是我的代码到目前为止,我需要创建一个反向字符串,所以input =“hello”将输出=“olleh”...我遇到的错误是代码中的push和pop部分。我不能使用StringBuffer。错误是 -
线程“main”中的异常java.lang.Error:未解析的编译 问题:l无法解决l无法解决
在E.reverse(E.java:10)在E.main(E.java:17)
你能帮忙吗?
public class Rev {
public static String reverse(String s) {
MyStack st = new MyStack();
while (!s.isEmpty()) {
String k = st.toString();
st.push(s);
}
while (!s.isEmpty()) {
String p = st.pop();
return s;
}}
public static void main(String[] args) {
System.out.println(reverse("hello"));
}
}
答案 0 :(得分:1)
一个简单的方法是:
private Stack s = new Stack();
public void reversestack( String str )
{
for(int j = 0; j < str.length(); j++)
{
s.push( str.charAt( j ) );
}
while(s.isEmpty() != true)
{
System.out.println(s.pop());
}
}
答案 1 :(得分:0)
如何尝试这样: -
public class StringReverse {
public static void main(String [] args){
Scanner scanner = new Scanner(System.in);
String str = "";
Stack<String> stack = new Stack<String>();
System.out.println("Enter a string to be reversed: ");
str = scanner.nextLine();
for (int i=0;i<str.length();i++){
stack.push(str.substring(i,i+1));
}
String strrev = "";
while(!stack.isEmpty()){
strrev += stack.pop();
}
System.out.println("Reverse of the string \"" + str + "\" is: \"" + strrev + "\"");
}
}