在扩展EditText的类中,我有以下变量:
private final String LEADING_ZERO_FILTER_REGEX = "^0+(?!$)";
这将使某些输入(前导字符)自动删除,但它只能处理零(0)和符号。我有时会输出0.0作为输出(即使这个可编辑,也可以添加0.012313545或带有0.0的东西),这使我的应用程序难看。 如何在正则表达式中添加0.0?我想排除0.0,意味着在EditText中输入不能超过0.0。仅供参考,我对正则表达式的了解是从1到10的0.1。
*注意:我的应用程序在用户输入零值/可能使结果为0.0(零点零点)的任何值时计算一些值
更新信息: 在应用程序中,有3个EditText第一个用于价格,第二个用于百分比,第三个用于它们的结果。我有自定义edittext,它将输入更改为货币格式(作为用户输入),此自定义edittext具有onChange和onCleared。在onchange我把计算过程和第一,它将值转换回数字格式(在自定义edittext中也有反向函数)然后计算,但我使用Double.valueOf(来自edittext的输入)。这使得输出也是双格式(它将转换为字符串1st然后放到结果edittext)。我认为罪魁祸首是双格式,使结果为0.0(实际应该是空的(""),我不知道为什么它变成0.0(错误没有找到))。
**更多说明: edittext互相观看,假设用户在第1和第2个edittext中输入的输出将是第3个edittext。但是如果用户输入第1和第3,则输出将在第2(以百分比表示)。
答案 0 :(得分:2)
要删除前导0
或0.0
,您只需使用以下正则表达式。
private final String LEADING_ZERO_FILTER_REGEX = "^(?:0\\.0|0+)";