如果我想打印字符串“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等
答案 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