我正在尝试解析一个字符串,但首先我需要检查“@ \ n”是字符串中的第一个东西。我已经验证我使用.substring(start,end)方法获取了正确的数据,但是当我尝试使用contains()或equals()来评估该子字符串时,它总是返回false。
Log.v("DLI",data.substring(0,3));
Log.v("DLI","Contains:"+data.substring(0,3).contains("@\n"));
Log.v("DLI","Equals:"+data.substring(0,3).equals("@\n"));
以下是退出:
12-18 05:28:51.899 21610-21610/? V/DLI﹕ @\n
12-18 05:28:51.899 21610-21610/? V/DLI﹕ Contains:false
12-18 05:28:51.899 21610-21610/? V/DLI﹕ Equals:false
这是我试图解析的字符串(当我粘贴它时,Android Studio将其转义,因此我包含了AS版本(第一个)和原始版本(第二个)
"@\\n\\x1e\\rANSI 6360200102DL00390187ZV02260031DLDAQ0123456789ABC\\nDAAJOHN,Q,PUBLIC\\nDAG123 MAIN STREET\\nDAIANYTOWN\\nDAJVA\\nDAK123459999 \\nDARDM \\nDAS \\nDAT \\nDAU509\\nDAW175\\nDAYBL \\nDAZBR \\nDBA20011201\\nDBB19761123\\nDBCM\\nDBD19961201\\rZVZVAJURISDICTIONDEFINEDELEMENT\\r"
"@\n\x1e\rANSI 6360200102DL00390187ZV02260031DLDAQ0123456789ABC\nDAAJOHN,Q,PUBLIC\nDAG123 MAIN STREET\nDAIANYTOWN\nDAJVA\nDAK123459999 \nDARDM \nDAS \nDAT \nDAU509\nDAW175\nDAYBL \nDAZBR \nDBA20011201\nDBB19761123\nDBCM\nDBD19961201\rZVZVAJURISDICTIONDEFINEDELEMENT\r"
答案 0 :(得分:3)
JAVA中的特殊字符串:(http://www.freeformatter.com/java-dotnet-escape.html)
请注意,对于反斜杠,您必须提供两个反斜杠“\”。
所以在比较时使用两个反斜杠(“\\”)。
data.substring(0,3).contains("@\\n")
答案 1 :(得分:2)
答案 2 :(得分:-1)
请使用子串的参数中的索引,而不是使用字符,
substring(0,3);