У меня есть функция, которая возвращает String, но сначала я проверяю, является ли String нулевым, если это так, я возвращаю null.Почему этот метод печати работает? разве это не так?
моя функция
String decode(String input);
это может возвращать нулевое значение, если вход нуль так, если я 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();
}
}
Потому что 'System.out.println (null)' будет печатать 'null' буквально. – TactMayers