从编辑文本字符串中删除空格

6

在我的安卓应用中,我从一个编辑框中获取字符串并将其作为参数调用网络服务以获取JSON数据。现在,我获取编辑框中字符串值的方法如下:

final EditText edittext = (EditText) findViewById(R.id.search);

String k = edittext.getText().toString();

通常情况下,一切正常,但如果我们在编辑文本中输入的文本包含空格,则我的应用程序会崩溃。

例如 - 如果有人在编辑文本框中键入“食物”,那么没问题,但如果有人键入“印度食物”,它就会崩溃。

如何删除空格并仅获取字符串?

6个回答

25

那不就是Java吗?

String k = edittext.getText().toString().replace(" ", "");

是的,只是Java。很抱歉那是一个有点傻的问题。我本来可以直接谷歌搜索的。 - Ankit
3
单引号('')导致错误,使用双引号("")可以正常工作。例如:String k = edittext.getText().toString().replace(" ", ""); - reegan29

2

尝试这个...

final EditText edittext = (EditText) findViewById(R.id.search);

String k = edittext.getText().toString();

String newData  = k.replaceAll(" ", "%20");

并使用“newData”


你的解决方案看起来完美无缺,但我可以问一下为什么强调使用 "new" 吗? - Ankit

1
String email=recEmail.getText().toString().trim();
String password=recPassword.getText().toString().trim();

在未来,我强烈建议查看API中的Java字符串方法。这是获得最大化Java环境利用率的救命稻草。

1
通常情况下,对于网络服务,搜索查询需要在后面加上“+”符号。
例如,如果我们有“Indian Food”,应该发送为“Indian+Food”。
因此,我们可以使用以下方法来实现...
String k = edittext.getText().toString().trim().replace(" ", "+");

0
String userName=username_edt.getText().toString().trim();

如果使用 trim(),它将删除空格


1
感谢您为Stack Overflow社区做出的贡献。这可能是一个正确的答案,但如果您能提供代码的额外解释,让开发人员能够理解您的推理过程,那将非常有用。对于不太熟悉语法或难以理解概念的新开发人员来说,这尤其有帮助。您是否可以编辑您的答案,以包含更多细节,造福社区? - Jeremy Caney

-1

你可以使用类似this的方法轻松地删除所有空格。但是,如果你只是这样做,你将面临另一个严重的问题。例如,如果你输入

,它将被解释为HTML标记,而不是文本。因此,你需要使用适当的编码来处理这个问题。

String input1 = "aa bb cc"; // output aabbcc
String input2 = "a abbcc";  // output aabbcc
String input3 = "aabb cc";  // output aabbcc

一个解决方案是修复您的应用程序以接受输入字符串中的空格,或使用其他文字替换空格。如果您只使用字母数字值,则可以像这样操作:
String input1 = "aa bb cc"; // aa_bb_cc
String input2 = "a abbcc";  //a_abbcc
String input3 = "aabb cc";  //aabb_cc

如果您不关心信息的丢失,那么您可以使用任何方法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接