Java 队列和堆栈
我在编写一个程序来确定一个字符串是否是回文时遇到了问题,该程序在跳过空白字符和标点符号、忽略大小写差异、将每个字符同时存储在堆栈和队列中时,从用户处获取输入字符串。我已经确定了它是否是回文。我遇到的问题是在队列和堆栈中对其进行排序。以下是我现在拥有的Java 队列和堆栈,java,Java,我在编写一个程序来确定一个字符串是否是回文时遇到了问题,该程序在跳过空白字符和标点符号、忽略大小写差异、将每个字符同时存储在堆栈和队列中时,从用户处获取输入字符串。我已经确定了它是否是回文。我遇到的问题是在队列和堆栈中对其进行排序。以下是我现在拥有的 import java.util.Scanner; public class Pali { static int length; static String st; static ListStack stack = ne
import java.util.Scanner;
public class Pali
{
static int length;
static String st;
static ListStack stack = new ListStack();
static ListQueue lq = new ListQueue();
static Scanner input = new Scanner(System.in);
public static void main (String[] args)
{
text();
String s = null;
createStack(s);
String q = null;
createQueue(q);
}
public static void text()
{
String st, _n = "y";
int left, right;
Scanner scan = new Scanner (System.in);
while (_n.equalsIgnoreCase("y"))
{
System.out.println ("Enter a potential palindrome:");
st = scan.nextLine();
left = 0;
right = st.length() - 1;
while (st.charAt(left) == st.charAt(right) && left < right)
{
left++;
right--;
}
System.out.println();
if (left < right)
System.out.println ("That string is NOT a palindrome.");
else
System.out.println ("That string IS a palindrome.");
System.out.println();
System.out.print ("Test another palindrome (y/n)? ");
_n = scan.nextLine();
}
}
public static void createStack(String s)
{
for (int i = 0; i < s.length(); i++)
{
stack.push(s.charAt(i));
}
}
public static void createQueue(String q)
{
for (int i = 0; i < q.length(); i++)
{
lq.enqueue(q.charAt(i));
}
}
public static void palindrome(ListQueue l, ListStack m)
{
for(int i = 0; i < m.size();i++)
{
}
}
}
import java.util.Scanner;
公共类巴利语
{
静态整数长度;
静态字符串st;
静态ListStack堆栈=新ListStack();
静态ListQueue lq=新ListQueue();
静态扫描仪输入=新扫描仪(System.in);
公共静态void main(字符串[]args)
{
text();
字符串s=null;
createStack(个);
字符串q=null;
创建队列(q);
}
公共静态无效文本()
{
字符串st,n=“y”;
int左,右;
扫描仪扫描=新扫描仪(System.in);
而(_n.相等信号情况(“y”))
{
System.out.println(“输入可能的回文:”);
st=scan.nextLine();
左=0;
右=标准长度()-1;
而(圣查拉特(左)=圣查拉特(右)和左<右)
{
左++;
对--;
}
System.out.println();
if(左<右)
System.out.println(“该字符串不是回文。”);
其他的
System.out.println(“该字符串是回文。”);
System.out.println();
System.out.print(“测试另一个回文(y/n)?”;
_n=scan.nextLine();
}
}
公共静态void createStack(字符串s)
{
对于(int i=0;i
您需要使用堆栈和队列吗?或者你这么做只是因为有人向你建议?
在当前代码中,实际上根本没有使用堆栈或队列,您只是创建它们并用空字符串填充它们
你的原始代码位对字符串的操作并没有那么糟糕,但是试着添加一个步骤来格式化你的字符串,这样你就可以去掉大小写,去掉除字母以外的任何东西,去掉空白等等。让这个步骤起作用,然后试着检查它是否是回文
不,我不会告诉你怎么做,因为我最近也做了同样的事情,我知道找到……有多容易。到目前为止你有什么?导入java.util.Scanner;公共类Pali{static int length;静态字符串st;静态ListStack stack=new ListStack();静态ListQueue lq=new ListQueue();静态扫描程序输入=new Scanner(System.in);公共静态void main(字符串[]args){text();字符串s=null;createStack(s);String q=null;createQueue(q);}“一个确定字符串是否是回文的程序”对我来说听起来像[家庭作业]。如果是这样,请这样标记。public static void text(){String st,_n=“y”;int left,right;Scanner scan=new Scanner(System.in);while(_n.equalsIgnoreCase(“y”)){System.out.println(“输入一个可能的回文:”);st=scan.nextLine();left=0;right=st.length()-1;user1006161在原始问题中发布代码。不在评论部分。