java - 为什么使用toString方法后仍然得到[]?

标签 java stack tostring

这是我的代码:

public class StackStudy{
    public static void main(String[] args){
        Stack<String> st = new Stack<String>();
        st.push("hi");
        st.push("bye");
        st.push("awful");
        System.out.println(st.toString());
    }
}

控制台打印出以下内容:

[hi, bye, awful]

我以为使用 toString 会去掉 [],为什么它还在那里?

编辑: 如果 toString 不是摆脱 [] 的正确方法,那么正确的方法是什么?

最佳答案

因为 Vector (或可能 AbstractCollection)的 toString() 方法包含括号(和 Stack继承了 toString())。您可以通过使用子字符串来删除它们,例如

String str = st.toString();
System.out.println(str.substring(1, str.length() - 1));

关于java - 为什么使用toString方法后仍然得到[]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27573904/

相关文章:

java - 文件显然无法转换为文件

java - Android XML 中的多个错误

java套接字文件输出流无法关闭文件

java - Mime 7位编码和UnsupportedEncodingException

克隆系统调用的参数存储在堆栈或其他地方?

java - 检查该方法是否已使用该输入执行的方法

c# 十进制到字符串的货币

java - 与仅使用数组相比,使用 Vector 实现堆栈有优势吗?

java - 如何处理toString Java方法中的递归?

javascript - Obj.toString() 既等于 false 又等于 true?