在Java中,我想打印Stack的内容.该toString()方法将它们打印在用逗号分隔的方括号中:[foo, bar, baz].
问题是,我如何摆脱它们并仅打印变量?
我的代码到目前为止:
Stack myStack = new Stack ();
for(int j=0;j<arrayForVar.length;j++) {
if(arrayForVar[j][1]!=null) {
System.out.printf("%s \n",arrayForVar[j][1]+"\n");
myStack.push(arrayForVar[j][1]);
}
System.out.printf("%s \n",myStack.toString());
Run Code Online (Sandbox Code Playgroud)
这个答案对我有用:
使用toStringStack上的方法,并使用replaceAll方法用blankstring替换方括号的所有实例.像这样:
System.out.print(
myStack.toString().replaceAll("\\[", "").replaceAll("]", ""));
Run Code Online (Sandbox Code Playgroud)
Joh*_*ohn 10
有一个解决方法.
您可以将其转换为数组,然后将其打印出来Arrays.toString(Object[]):
System.out.println(Arrays.toString(myStack.toArray()));
使用与填充堆栈相同类型的循环并根据您的喜好打印各个元素。没有办法改变 的行为toString,除非你走子类化的路线Stack,我不推荐这样做。如果 的源代码Stack在您的控制之下,那么只需修复那里的实现即可toString。
| 归档时间: |
|
| 查看次数: |
38949 次 |
| 最近记录: |