0

我有两个变量但值相同,一个是从数据库中检索的字符串,另一个是在程序中生成的。举个例子 :

 String encodedImage="FFD8FFFE002460000D11000000000000000000000000000000F0004001230032"
+"120B510451040000FFDB008400090607080705090807080A09090A0D160E0D0C"; 

//这是程序中生成的变量

String vartable="FFD8FFFE002460000D11000000000000000000000000000000F0004001230032\r\n120B510451040000FFDB008400090607080705090807080A09090A0D160E0D0C

// 这是从数据库中检索到的字符串,它是一个 json 然后解析为一个字符串

该字符串是图片的表示,因此它要长得多,但这里是前两行。问题是,如果我比较 2 个字符串

if( encodedImage.equalsIgnoreCase(vartable)

我发现 2 字符串不匹配任何帮助?我正在做一个android应用程序,我必须有相同的字符串才能有相同的图片

4

2 回答 2

1

您在其中一个字符串( )中有一个\r\n序列。vartable因此这两个字符串不相等 - 其中一个字符串多两个字符。您可以通过调试轻松检测到这一点 - 两个字符串的长度不同,这可能是第一个检查equals及其变体执行的检查。

于 2013-09-24T09:19:46.273 回答
1

尝试这个,

vartable = vartable.replaceAll("\r\n", "");

然后比较两个字符串,

if (encodedImage.equalsIgnoreCase(vartable))
于 2013-09-24T09:22:17.380 回答