我是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);
答案 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+", "");