我的程序在一个活动中生成一个字符串列表,然后将其传递给另一个活动,第二个活动使用这些字符串。
当我通过在第二个活动开始时打印出列表中的每个元素进行测试时,打印输出看起来很完美。例如,如果我希望列表包含"Lemon Juice"
,它会打印出完全正确的,但是第二个活动中的逻辑仍然不起作用。如果我手动将"Lemon Juice"
添加到列表中,第二个活动中的逻辑工作正常,那么问题是收到的List中的字符串不是真的"Lemon Juice"
。但是:
"Lemon Juice".contains(received String)
它会回来,如果我运行收到String.contains("Lemon Juice")
它
回来true
,但是如果我收到String.equals("Lemon Juice")
,它就会返回false。这让我非常困惑。任何人都可以想到一个可能的解释,如何将某些内容转换为字符串,打印为字符串,看起来像一个字符串,是不是像字符串一样?
编辑以包含一些代码:
// instance variable at top of class--list to which strings will be added for use in
// 2nd activity
private List<String> exs = new ArrayList<String>();
// get array of strings from extra from intent from first activity
String[] recExs = getIntent().getStringArrayExtra(BrowseActivity.EXS);
for (int exx = 0; exx < recExs.length; exx++) {
String curEx = (String) recExs[exx];
exs.add(curEx);
}
不知何故,当我将exs传递给方法时我需要使用字符串,它不起作用,即使如上所述,打印和调用包含等都显示字符串,在我将它添加到exs之前,是在我希望它是。
答案 0 :(得分:1)
当您只发布一小段代码时,很难提供帮助。
但是我猜测String.contains
有效的原因,但String.equals
并不是说可能在字符串中有空格。在传递和接收数据时,请在活动的两侧尝试String.trim
。