GVKun编程网logo

toString java的数组(java 数组 tostring)

16

如果您对toStringjava的数组感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于toStringjava的数组的详细内容,我们还将为您解答java数组tostring的

如果您对toString java的数组感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于toString java的数组的详细内容,我们还将为您解答java 数组 tostring的相关问题,并且为您提供关于C相当于Java的toString?、dart – 对象的默认stringify,相当于Java的toString?、Java toString-ToStringBuilder不够;不会遍历、java – Clojure中-toString与.toString的区别的有价值信息。

本文目录一览:

toString java的数组(java 数组 tostring)

toString java的数组(java 数组 tostring)

我在一堂课有几个数组

我想实现toString()来打印所有值。

这该怎么做?

public String var1[];   public int var2[];public String var3[][];public int var4[];public int var5[][];public String toString() {        for(String s :  var1) {              System.out.println(s.toString());                   }        return  null;    }

那将打印所有var1 []内容,但如何打印所有内容?我是否必须为每个人都做个循环?

答案1

小编典典

您可以Arrays.toString()如下使用静态帮助器方法:

String lines[] = getInputArray();System.out.println(java.util.Arrays.toString(lines));

C相当于Java的toString?

C相当于Java的toString?

我想控制写入流的内容,即cout,以获取自定义类的对象.这可能在C?在 Java中,您可以覆盖toString()方法以实现类似目的.

解决方法

在C中你可以重载运算符<<对于ostream和您的自定义类:

class A {
public:
  int i;
};

std::ostream& operator<<(std::ostream &strm,const A &a) {
  return strm << "A(" << a.i << ")";
}

这样您就可以在流上输出类的实例:

A x = ...;
std::cout << x << std::endl;

如果您的操作符<<想要打印出A类的内部,并且真正需要访问其私有和受保护的成员,您也可以将其声明为友元函数:

class A {
private:
  friend std::ostream& operator<<(std::ostream&,const A&);
  int j;
};

std::ostream& operator<<(std::ostream &strm,const A &a) {
  return strm << "A(" << a.j << ")";
}

dart – 对象的默认stringify,相当于Java的toString?

dart – 对象的默认stringify,相当于Java的toString?

我刚刚看一下dart的3º教程,创建了评级组件.我想知道在对字符串进行字符串化时是否有相同的方法,类似于 Java的toString.

例如:

MyClass myObject = new MyClass();
System.out.println(myObject);

如果覆盖将调用MyClass.toString(),否则将调用它的父级,直到达到java.lang.Object,给出默认的toString.

我发现有点丑陋(完全主观)做:

<span ng-repeat="star in cmp.stars" > {{star.toString()}} </span>

我宁愿这样做:

<span ng-repeat="star in cmp.stars" > {{star}} </span>

并实现我希望它以一种averwritten方法显示的方式.这可能吗?

解决方法

是的,它适用于打印,字符串插值或角度胡须.

通过覆盖对象上的String toString()方法,显示的值将是此toString()调用的结果.如果在类层次结构中没有定义toString(),则将调用Object的toString()(它将为类MyClass {}返回’MyClass’的实例).

Java toString-ToStringBuilder不够;不会遍历

Java toString-ToStringBuilder不够;不会遍历

我需要能够遍历整个对象图并记录所有成员字段的所有内容。

例如:对象A具有对象B的集合,而对象B具有对象C的集合,并且A,B,C上具有其他字段,等等。

Apache Commons
ToStringBuilder不够用,因为它不会遍历对象图或输出集合的内容。

有谁知道另一个将这样做的库,或者有一个这样做的代码段?

答案1

小编典典

您可以使用遍历整个树org.apache.commons.lang.builder.ReflectionToStringBuilder。诀窍在于ToStringStyle您需要遍历值。ToStringStyle将处理已经处理的值,并且不允许递归。开始了:

System.out.println(ReflectionToStringBuilder.toString(schema, new RecursiveToStringStyle(5)));private static class RecursiveToStringStyle extends ToStringStyle {    private static final int    INFINITE_DEPTH  = -1;    /**     * Setting {@link #maxDepth} to 0 will have the same effect as using original {@link #ToStringStyle}: it will     * print all 1st level values without traversing into them. Setting to 1 will traverse up to 2nd level and so     * on.     */    private int                 maxDepth;    private int                 depth;    public RecursiveToStringStyle() {        this(INFINITE_DEPTH);    }    public RecursiveToStringStyle(int maxDepth) {        setUseShortClassName(true);        setUseIdentityHashCode(false);        this.maxDepth = maxDepth;    }    @Override    protected void appendDetail(StringBuffer buffer, String fieldName, Object value) {        if (value.getClass().getName().startsWith("java.lang.")                    || (maxDepth != INFINITE_DEPTH && depth >= maxDepth)) {            buffer.append(value);        }        else {            depth++;            buffer.append(ReflectionToStringBuilder.toString(value, this));            depth--;        }    }    // another helpful method    @Override    protected void appendDetail(StringBuffer buffer, String fieldName, Collection<?> coll) {         depth++;         buffer.append(ReflectionToStringBuilder.toString(coll.toArray(), this, true, true));         depth--;    }}

java – Clojure中-toString与.toString的区别

java – Clojure中-toString与.toString的区别

在关于 The Anatomy of gen-class的gen-class的解释之后,我使用leiningen来获取类文件.

> leon new pinger创建一个项目.
> cd src和mkdir some并在其中创建了一个Example.clj文件.
>已添加:在project.clj中有一个[some.Example](或:aot:all).

Example.clj如下:

(ns some.Example
  (:gen-class))

(defn -toString
  [this]
  "Hello,World!")

然后我执行lein编译以获取目标目录中的类.

然后,我用lein repl执行这段代码.

(-toString (some.Example.)) ; should return "Hello,World!"

但是,我收到此错误消息.

CompilerException java.lang.RuntimeException: Unable to resolve symbol: 
-toString in this context,compiling:(/private/var/folders/nw/dmb7jh3d2hq89296z2gnntqm0000gn/T/form-
init7145760420048735997.clj:1:1)

.toString工作正常.

user=> (.toString (some.Example.))
"Hello,World!"

该网站解释说我应该从-toString和.toString获得相同的结果,但我只得到.toString的正确结果.

Clojure中-toString和.toString有什么区别?为什么-toString会在示例中引发错误?

解决方法

首先,一些术语:

>(.toString(some.Example.))是对新构造的some.Example实例的toString方法的调用.
>(-toString(some.Example.))是一个常规的Clojure函数调用,-toString是存储函数的Clojure Var的名称,而(some.Example.)是它的唯一参数.

:gen-class排列事物,以便-toString Var支持toString方法;也就是说,对some.Example实例的toString方法的任何调用都会导致对-toString的调用.所以确实只是直接调用-toString是等效的.

但是,在通过引用存储它的Var来调用Clojure函数之前,需要确保已经加载了这个Var所在的命名空间(这里没有问题,因为你能够构造一个实例) some.Example)然后通过其完全限定名称引用Var,或者使用refer,use,require或alias来使用更短的名称引用它:

(some.Example/-toString ...)

(use '[some.Example :only [-toString]])
(-toString ...)

(require '[some.Example :refer [-toString]])
(-toString ...)

(require '[some.Example :as se])
(se/-toString ...)

;; refer and alias are typically not used directly

如果你说-toString没有先使用refer,使用或者需要如上所示1,Clojure将尝试将符号-toString解析为当前命名空间中的Var(通常是REPL会话中的用户;使用lein repl,它可能是:main命名空间来自你的defproject表格).

1这是关于REPL的.在源文件中,您通常在ns表单中使用:use或:require;语法与use / require减去引用相同.

关于toString java的数组java 数组 tostring的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于C相当于Java的toString?、dart – 对象的默认stringify,相当于Java的toString?、Java toString-ToStringBuilder不够;不会遍历、java – Clojure中-toString与.toString的区别等相关知识的信息别忘了在本站进行查找喔。

本文标签: