1 回答

TA貢獻1827條經驗 獲得超4個贊
讓我們把Strings 改短一些。
String jsonLiteral = ""
? ? ? ? + "{\n"
? ? ? ? + "\tgreeting: \"Hello\"\n"
? ? ? ? + "}\n";
String jsonBlock = """
? ? ? ? {
? ? ? ? ? ? greeting: "Hello"
? ? ? ? }
? ? ? ? """;
讓我們調試它們并打印它們的實際內容。
"{\n\tgreeting: \"Hello\"\n}\n"
"{\n? ? greeting: \"Hello\"\n}\n"
\tand "? ? "(四個 ASCII SP 字符,或四個空格)不相等,整個Strings 也不相等。您可能已經注意到,文本塊中的縮進是由空格形成的(而不是由水平制表符、換頁符或任何其他類似空白的字符)形成的。
以下是JEP 355 規范中的一些文本塊示例:
String season = """
? ? ? ? ? ? ? ? winter""";? ? // the six characters w i n t e r
String period = """
? ? ? ? ? ? ? ? winter
? ? ? ? ? ? ? ? """;? ? ? ? ? // the seven characters w i n t e r LF
String greeting =?
? ? """
? ? Hi, "Bob"
? ? """;? ? ? ? // the ten characters H i , SP " B o b " LF
String salutation =
? ? """
? ? Hi,
? ? ?"Bob"
? ? """;? ? ? ? // the eleven characters H i , LF SP " B o b " LF
String empty = """
? ? ? ? ? ? ? ?""";? ? ? // the empty string (zero length)
String quote = """
? ? ? ? ? ? ? ?"
? ? ? ? ? ? ? ?""";? ? ? // the two characters " LF
String backslash = """
? ? ? ? ? ? ? ? ? ?\\
? ? ? ? ? ? ? ? ? ?""";? // the two characters \ LF
就你而言,
String jsonBlock = """
? ? ? ? ? {
? ? ? ? ? ? ? greeting: "Hello"
? ? ? ? ? }
? ? ? ? ? """; // the 26 characters { LF SP SP SP SP g r e e t i n g : SP " H e l l o " LF } LF
要使它們相等,請替換"\t"為"? ? "。和equals都==應該返回true,盡管您不應該依賴后者。
添加回答
舉報