【问题标题】:Android Strings issueAndroid字符串问题
【发布时间】:2014-01-10 10:20:39
【问题描述】:

我的程序在一个活动中生成一个字符串列表,然后将其传递给另一个活动,第二个活动使用这些字符串。

当我在第二个活动开始时打印出列表中的每个元素进行测试时,打印输出看起来很完美。例如,如果我希望列表包含"Lemon Juice",它会打印出来完全正确,但是第二个活动中的逻辑仍然不起作用。如果我手动将"Lemon Juice" 添加到列表中,第二个活动中的逻辑工作正常,所以问题是接收到的列表中的字符串不知何故不是真正的"Lemon Juice"。但是:

  1. 打印完全正确(包括检查前后的空格)。
  2. 我已尝试将接收到的列表元素显式转换为 (String),以确保它们是字符串。
  3. 如果我运行 "Lemon Juice".contains(received String) 它会返回 true,如果我运行收到 String.contains("Lemon Juice") 它 返回true,但如果我运行收到String.equals("Lemon Juice"),它会返回错误。这让我很困惑。

谁能想出一个可能的解释来解释被转换为字符串、打印为字符串、看起来像字符串的东西如何不像字符串那样执行?

根据要求编辑包含一些代码:

// 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 传递给我需要使用字符串的方法时,它不起作用,即使如上所述,打印和调用 contains 等都显示字符串,在我将它添加到 exs 之前,在我希望它是。

【问题讨论】:

  • 请改为发布您的代码,一个简短的 sn-p,与您的问题相关。我们更容易以这种方式提供帮助。
  • 我只知道你在和弦乐作斗争……
  • 那里不需要你转换成字符串。
  • 你能把使用字符串的方法的代码贴出来吗?
  • 你可以尝试在 String 类的 equals 方法中放置一个调试点吗?这将帮助您确定为什么两个字符串不匹配

标签: java android string arraylist


【解决方案1】:

当您只发布一小段代码时,很难提供帮助。

但我猜测String.contains 有效但String.equals 无效的原因可能是字符串中有空间。在传递和接收数据时,在 Activity 两侧尝试String.trim

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-07
    相关资源
    最近更新 更多