格式化java字符串以查看特定方式
我是Java新手,我有4个int堆栈,需要以特定的方式打印出来。我使用的IDE是BlueJ 我想打印数组,使其看起来像下面这样格式化java字符串以查看特定方式,java,string-formatting,Java,String Formatting,我是Java新手,我有4个int堆栈,需要以特定的方式打印出来。我使用的IDE是BlueJ 我想打印数组,使其看起来像下面这样 |110| |231| |333| |444| |111| |232| |334| |447| |112| |233| |335| |448| |113| |234| |336| |449| |114| |235| |337| |450| |115| |236| |338| |451|
|110| |231| |333| |444|
|111| |232| |334| |447|
|112| |233| |335| |448|
|113| |234| |336| |449|
|114| |235| |337| |450|
|115| |236| |338| |451|
我正试图用System.out.println(“|”+stack1.pop()+“|”)来解决这个问题,但它产生了一个问题,因为我不知道如何从底部返回到顶部。例如,115-->备份到231。每列表示一个堆栈
谢谢大家! 您将无法在控制台中执行此操作:
或者,您可以打印每个堆栈中的值,然后向下移动,如:
System.out.println("|"+stack1.pop()+"|\t|"+stack2.pop()+"|\t|"+stack3.pop()+"|\t|"+stack4.pop()+"|" );
编辑
如注释所示-您可以使用,检查可用的格式选项使用String.format()
System.out.println(String.format("|%s|\t|%s|\t|%s|\t|%s|",
stack1.pop(),stack2.pop(),stack3.pop(),stack4.pop()));
如果您想以相反的顺序打印堆栈
元素,只需将堆栈先反向
如何:
ArrayList<Stack<Integer>> arrays=new ArrayList<Stack<Integer>>();
arrays.add(stack1);
arrays.add(stack2);
arrays.add(stack3);
arrays.add(stack4);
//Put some code here to Determine the stack size, if all are unequal in size
int size=stack1.size();
for(int i=0;i<size;i++){
String value="";
String temp="";
ArrayList数组=新的ArrayList();
数组。添加(stack1);
数组。添加(stack2);
数组。添加(stack3);
数组。添加(stack4);
//如果所有堆栈大小都不相等,请在此处放置一些代码以确定堆栈大小
int size=stack1.size();
对于(inti=0;iWhy the Android tag?这似乎纯粹是Java,特别是因为您使用的是BlueJ和println()
@A--C,我最终将迁移到Android,所以我的错误是将其包含在其中。我真的不认为值得一次失败。我没有投你一票(因为这是一个小错误)但是,我确实删除了这个标签。“A—C,我的道歉……同时发生的问题在你的问题中是不明确的。例如,考虑第一列/堆栈A <代码> POP())操作将打印“代码> 115 < /代码>或<代码> 110代码>代码,也可以用指定数量的空格来填充每个字符串(而不是使用制表符)。@itech为什么要担心字符串连接,因为在编译过程中,+
将只被StringBuilder的append()替换这取决于编译器的实现,不需要以最高效的方式完成。此外,使用String.format
更具可读性,并在格式化输出时给予您更多的控制。你们都是对的:这种方式更好,编译器可能会以任何方式完成…@jahroy我不认为我们即使我们使用了String.fortmat
,如果我错了,请随便举个例子抱歉…我在发表评论后重新阅读了问题并删除了它。
for(int j=0;j<4;j++){
//Handle here Empty Stack Exception and print blank
value="|"+(String)(arrays.get(j)).pop().toString()+"|"+" ";
temp=temp+value;
}
System.out.println(temp);
}