Java List可以作为String输出吗?

时间:2014-02-18 00:36:40

标签: java list

如果我想打印字符串“Output:”后跟方法返回的结果,那么唯一一个在“Output:”的同一行上执行此操作的方法是返回String类型的方法。例如:

public static void main(String[] args){
  System.out.println(returnString("Hello"));
}

public static String returnString(String s){
    return "Output:" + s;
}

但是,如果我想打印字符串“Output:”后跟任何其他变量类型的方法返回,则返回必须在单独的行上。例如:

public static void main(String[] args){
  System.out.println(returnInt(2));
}

 pubic static int returnInt(int n){
  System.out.println("Output:");
  return n;
}

或将返回类型更改为String并使用适合返回类型的内置转换方法。例如:

public static void main(String[] args){
  System.out.println(returnInt(2));
}

public static String returnInt(int n){
  return "Output:" + String.valueOf(n)
}

public static void main(String[] args){
  System.out.println(returnArray(new int[]{1, 2, 3}));
}

public static String returnArray(int[] array){
  return "Output:" + Arrays.toString(array);
}

public static void main(String[] args){
  System.out.println(returnBoolean(false));
}

 public static String returnBoolean(boolean b){
  return "Output:" + Boolean.toString(b);
}

所以有三个问题:

1)初始化方法时,无法声明两种返回类型,就像声明两种输入类型一样(即methodName(int n,String S)),是否正确?

2)在返回非字符串时,是否有任何方法(例如转义序列)将下一行拉到同一行?

2)如果没有,是否有一个内置的方法返回一个List(Arrays.toString或String.value的方式为他们各自的类型做?我找不到任何类似的东西,如List.ToString等

5 个答案:

答案 0 :(得分:2)

1)这是正确的。但是,方法可以返回包含多个类型的实例变量的对象。

2)如果您使用System.out.print()代替System.out.println(),则不会在结尾处添加换行符。

3)This answer提供了一种打印List元素的简单方法。

System.out.println(Arrays.toString(stack.toArray()));

答案 1 :(得分:2)

在java中,您始终可以编写以下内容:

Object o = someMethod();
System.out.println("Output: " + o);

JVM将隐式调用o.toString()将其转换为字符串,然后将其附加到字符串'Output:'。

答案 2 :(得分:1)

  

1)初始化方法时,无法声明两种返回类型,就像声明两种输入类型一样(即methodName(int n,String S)),是否正确?

正确,在Java中,如果要返回多个内容,则应创建一个表示您要返回的数据的对象,然后返回该对象。因此,不是返回爪子,头部,身体,腿部和尾部物体,而是返回Dog

  

2)在返回非字符串时,是否有任何方法(例如转义序列)将下一行拉到同一行?

你打赌,只是不要告诉它添加换行符。这就是println正在为你做的事情,它意味着“打印线”。相反,只需使用print

  

2)如果没有,是否有一个内置的方法返回一个List(Arrays.toString或String.value的方式为他们各自的类型做?我找不到任何类似的东西,如List.ToString等

大多数List实现都有一个toString方法,所以你绝对可以打印出来,试一试。它可能不完全是您想要的,因此您可能必须编写一个帮助方法来格式化它的意图。

答案 3 :(得分:0)

你真的错了。

  

如果我想打印字符串"输出:"无论结果如何   方法返回,唯一一个将在同一行上执行此操作的方法   "输出:"是一个返回String类型的方法。

绝对不是。

采取这种方法

public int returnAnInt() {
    return 42;
}

您可以打印此方法返回的值,如此

System.out.println("Output:" + /*possibleInstance.*/returnAnInt());

由于String concatenation,这是可能的。

请不要在考虑输出的情况下编写方法。例如,如果您有一个应该计算两个整数之和的方法

public int add(int a, int b) {
    return a + b;
}

让它计算两个整数的总和。

没有必要将输出放在方法本身中。使调用此方法的代码输出值

int sum = add(16, 27);
System.out.println("The sum is: " + sum);
// or
System.out.println("The sum is: " + add(16, 27));

关于你的3个问题,我认为这些问题变得没有实际意义,请参阅其他答案。 You might want to look at the toString() method which all reference types inherit.

答案 4 :(得分:0)

public class tst
{
    public static void main(String[] args)
    {
        System.out.println(toString(1));
        System.out.println(toString("hello"));
        System.out.println(toString(false));
        System.out.println(toString(new Integer[] { 1, 2, 3 }));
    }

    static String toString(Object object)
    {
        return "Output: (" + object.getClass().getSimpleName() + ") " + object;
    }
}

控制台输出是:

Output: (Integer) 1
Output: (String) hello
Output: (Boolean) false
Output: (Integer[]) [Ljava.lang.Integer;@51de8adb