我有一个ArrayList我想完全输出为String.基本上我想按顺序输出它,使用toString由制表符分隔的每个元素.有没有快速的方法来做到这一点?你可以循环它(或删除每个元素)并将它连接到一个字符串,但我认为这将是非常缓慢的.
当我System.out.println(map)使用Java时,我在stdout中得到了一个很好的输出.如何Map在不干预标准输出的情况下获取变量中相同的字符串表示形式?有点像String mapAsString = Collections.toString(map)?
在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) 为了理解某些代码的内部结构或错误的打印转储,我在Python和Emacs lisp中使用类似pp的函数.
现在我来到Java并寻找标准库或tecnique来获得OBJECT for Java的漂亮印刷表示.
似乎当前的Java规范允许在运行时内省Java对象.但内省可能不是那么强大.使用new Object [] arg 无法调用m(Object o)?
注意我不希望源代码美化!我正在寻找运行时漂亮的打印Java对象转储.
注2:这些问题相似但不完全相同:
我成功地从头开始创建了一个LinkedList.到目前为止,它只能添加数据.没有删除或任何类似的东西.
我可以添加字符串,整数等但我有打印我添加的数据的问题.我怎么做?我想我必须首先完成它,但是怎么样?
这是我的Node类:
public class Node {
T data;
Node<T> nextNode;
public Node(T data) {
this.data = data;
}
public String toString () {
return data +"";
}
}
Run Code Online (Sandbox Code Playgroud)
这是LinkedList类:
public class LinkedList <T> {
Node<T> head;
Node<T> tail;
public void add (T data) {
// where to add statements. if its empty or not
Node<T> node = new Node<T> (data);
if (tail == null) { // empty list
// nothng in the node = tail = node;
head = …Run Code Online (Sandbox Code Playgroud) 我有一个数字样本.我将它们存储在List带有时间戳和值的数据点中.这是我的代码:
List<Number> samples = {55,67,57,67};
List<Number[]> dps = Lists.newArrayList();
Calender c1; c1.set(2013, 5, 20, 15, 44, 00);
int timeStartSec = (int) (c1.getTime().getTime() / 1000);
for(Number num: samples){
dps.add(new Number[] { timeStartSec, num});
timeStartSec = timeStartSec+5;
}
System.out.println("Final DataPoints " + dps);
Run Code Online (Sandbox Code Playgroud)
输出:
Final DataPoints [[Ljava.lang.Number;@af8358, [Ljava.lang.Number;@d80be3, [Ljava.lang.Number;@1f4689e, [Ljava.lang.Number;@1006d75, [Ljava.lang.Number;@1125127, [Ljava.lang.Number;@18dfef8, [Ljava.lang.Number;@15e83f9, [Ljava.lang.Number;@2a5330, [Ljava.lang.Number;@bb7465,]
为什么打印java.lang.Number而不是适当的值?