Android开发:传递自定义字符串时如何去除用户输入的空字符串
搞定EditText输入空值/全空格的处理问题
嘿,我看你现在的代码里,判断strSite.matches("")根本不会生效——毕竟你已经把site%3A和用户输入拼在一起了,哪怕用户啥都没输或者只输了空格,strSite都会是site%3A或者site%3A ,永远不可能是空字符串,这就是问题所在呀!
咱们换个思路,先把用户的原始输入处理干净,再去拼接格式就对了:
正确的处理流程
- 第一步先把EditText里的文本拿出来,直接去掉首尾的空白字符(包括空格、换行这些)
- 先判断清理后的输入是不是空的,是空的话就把
strSite设为null返回;不是空的话再拼接成你要的site%3Axxx格式
修改后的代码示例
EditText siteName = findViewById(R.id.editSite); // 先获取原始输入,用trim()去掉首尾空白 String rawInput = siteName.getText().toString().trim(); // 现在判断清理后的输入是否为空 if (rawInput.isEmpty()) { strSite = null; return; } // 输入有效时再拼接成目标格式 strSite = "site%3A" + rawInput; // 同样的逻辑处理fileType的部分 EditText fileType = findViewById(R.id.editFile); String rawFileInput = fileType.getText().toString().trim(); if (rawFileInput.isEmpty()) { // 这里按你的需求处理,比如设为null或者给个默认值 fileTypeStr = null; return; } // 如果需要拼接格式的话就继续 fileTypeStr = "你的格式前缀" + rawFileInput;
补充说明
trim()会移除字符串首尾所有空白字符,比单纯判断空字符串覆盖的场景更多(比如用户不小心输了空格的情况)- 如果你想连输入中间的空格也全部去掉(比如用户输了好几个空格),可以用
rawInput.replaceAll("\\s+", ""),把所有空白字符都替换掉,再判断是否为空
这样调整后,就能准确识别用户没输入有效内容的情况啦~
内容的提问来源于stack exchange,提问作者user3340335
相关产品推荐
相关产品推荐

