我有一个返回String的函数,但首先我检查String是否为null,如果是,我返回null。
我的功能
String decode(String input);
如果输入为null,则返回null
所以,如果我decode(null())
,它应该返回null
,对吗?
并且println(null)
不应该打印"null"
,对吧?
代码的链接,可以运行:http://ideone.com/bLreXJ
import java.util.*;
import java.lang.*;
import java.io.*;
class Testing
{
public static void main (String[] args) throws java.lang.Exception
{
String input = null;
// get input in some manner
input = "www.me%20.com";
System.out.println(decode(input)); // returns "www.me .com"
input = "https://www.google.com/webhp?#q=java%20hi%20there";
System.out.println(decode(input)); // returns "https://www.google.com/webhp?#q=java hi there"
input = " ";
System.out.println(decode(input)); // returns ""
input = null;
System.out.println(decode(input)); // returns "null" , but why?
// System.out.println(null); // this fails because println doesn't accept null
}
public static String decode(String input){
if(input == null)
return null;
String[] strArr = input.split("%20");
StringBuilder sb = new StringBuilder("");
for(String a : strArr){
sb.append(a).append(" ");
}
return sb.toString().trim();
}
}
答案 0 :(得分:2)
你写了
// System.out.println(null); // this fails because println doesn't accept null
你确定这个吗?
PrintStream.println
调用String.valueOf
,将null
转换为字符串"null"
。