刚刚进入java数组和正则表达式,并试图建立一个程序我曾经建立在php中,我需要发生的是我有一个从twitter的arraylist我想使用正则表达式来查找包含链接的文本,如果文本包含链接,我想将这些新值添加到我想要显示的新数组中,但最终数组返回为空,这意味着在某个时间点我的代码中的正则表达式没有正确匹配或值不转移到新的数组,因为我是新来的这在Java我不能发现哪里出错了,任何帮助将是巨大的,在此先感谢。java正则表达式/ arraylist问题,无法获得匹配/ arraylist商店新值
protected void onPostExecute(ResponseList<twitter4j.Status> results) {
// TODO Auto-generated method stub
super.onPostExecute(results);
ArrayList<twitter4j.Status> al = new ArrayList<twitter4j.Status>();
for(twitter4j.Status statii: results){
String patternStr = "^(https?|ftp|file)://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]";
Pattern pattern = Pattern.compile(patternStr);
Matcher matcher = pattern.matcher(statii.getText());
if(matcher.find() == true){
al.add(statii);
}
}
StatusListAdapter adapter = new StatusListAdapter(
TweepicsappActivity.this, al);
setListAdapter(adapter);
}
不需要'matcher.find()== true'简单'matcher.find()'会工作。 – RanRag 2012-02-13 02:39:28
有趣的是,但我仍然无法捕捉到新数组中的任何东西,我故意设置结果以包含文本中的所有链接,但我在这里完成的工作似乎仍然存在缺陷,我的正则表达式可能会关闭吗? – 2012-02-13 02:52:41
我无法为你解决这个问题 - 但我建议将正则表达式逻辑移动到'doInBackground(...)'线程,并将'ArrayList'返回给'onPostExecute(... )'因为,正如javadoc所示(http://developer.android.com/reference/android/os/AsyncTask.html#onPostExecute(Result)),'onPostExecute(...)'在UIThread上运行.. –
2012-02-13 02:55:28