为什么不从字符串中删除空格和字符?

时间:2013-06-10 12:17:21

标签: android string replace whitespace removing-whitespace

我是Android的菜鸟,我遇到了改变字符串的问题。我有一个列表视图,正在从一个arraylist填充。在我的OnItemClick方法中,我想取选择的值使其小写,删除空格,并删除撇号。但是,我只能使字符串小写,空格和撇号仍然存在。例如,“熊的大蒜”变成“熊的大蒜”而不是“熊的大蒜”。非常感谢任何帮助。

我的代码

String herb_pic = herb_ListView.getItemAtPosition(position).toString().toLowerCase() + "_picture";
                        herb_pic.replaceAll("\\s+", ""); //Not removing whitespaces
                        herb_pic.replace(" ", ""); //Not removing space
                        herb_pic.replace("'", ""); //not removing apostrophe
                        herb_pic.replace(".", ""); //Not removing 
                        Log.e("herb_pic result", herb_pic); 

2 个答案:

答案 0 :(得分:3)

因为在java String中s是不可变的:

String herb_pic = herb_ListView.getItemAtPosition(position).toString().toLowerCase() + "_picture";
herb_pic = herb_pic.replaceAll("\\s+", ""); //Not removing whitespaces
herb_pic = herb_pic.replace(" ", ""); //Not removing space
herb_pic = herb_pic.replace("'", ""); //not removing apostrophe
herb_pic = herb_pic.replace(".", ""); //Not removing 
Log.e("herb_pic result", herb_pic); 

答案 1 :(得分:1)

因为replace函数返回一个字符串已被替换的字符串。

herb_pic = herb_pic.replaceAll("\\s+", "");